sas: unify the pointlessly separated enums sas_dev_type and sas_device_type
James Bottomley
maintainerPATCH 1/1 sas: unify the pointlessly separated enums sas_dev_type and sas_device_type
These enums have been separate since the dawn of SAS, mainly because the latter is a procotol only enum and the former includes additional state for libsas. The dichotomy causes endless confusion about which one you should use where and leads to pointless warnings like this:
drivers/scsi/mvsas/mv_sas.c: In function 'mvs_update_phyinfo':drivers/scsi/mvsas/mv_sas.c:1162:34: warning: comparison between 'enum sas_device_type' and 'enum sas_dev_type' [-Wenum-compare]
Fix by eliminating one of them. The one kept is effectively the sas.h one, but call it sas_device_type and make sure the enums are all properly namespaced with the SAS_ prefix.
---
I'll put this in as the last patch to go to Linus so it should avoid conflicting with any in process patches for this merge window.
drivers/scsi/aic94xx/aic94xx_dev.c | 24 ++++---- drivers/scsi/aic94xx/aic94xx_hwi.c | 2 drivers/scsi/aic94xx/aic94xx_tmf.c | 2 drivers/scsi/isci/remote_device.c | 4 - drivers/scsi/isci/remote_device.h | 2 drivers/scsi/isci/request.c | 6 +- drivers/scsi/isci/task.c | 2 drivers/scsi/libsas/sas_ata.c | 18 +++--- drivers/scsi/libsas/sas_discover.c | 34 +++++------ drivers/scsi/libsas/sas_expander.c | 110 ++++++++++++++++++------------------- drivers/scsi/libsas/sas_internal.h | 10 +-- drivers/scsi/libsas/sas_port.c | 2 drivers/scsi/mvsas/mv_init.c | 2 drivers/scsi/mvsas/mv_sas.c | 16 ++--- drivers/scsi/mvsas/mv_sas.h | 4 - drivers/scsi/pm8001/pm8001_hwi.c | 18 +++--- drivers/scsi/pm8001/pm8001_init.c | 2 drivers/scsi/pm8001/pm8001_sas.c | 14 ++-- drivers/scsi/pm8001/pm8001_sas.h | 4 - drivers/scsi/pm8001/pm80xx_hwi.c | 12 ++-- include/scsi/libsas.h | 4 - include/scsi/sas.h | 22 ++++--- include/scsi/sas_ata.h | 4 - include/scsi/scsi_transport_sas.h | 7 -- 24 files changed, 160 insertions(+), 165 deletions(-)
drivers/scsi/aic94xx/aic94xx_dev.c +12 -12
@@ -84,7 +84,7 @@ static void asd_set_ddb_type(struct domain_device *dev)struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha;int ddb = (int ) (unsigned long ) dev->lldd_dev; -if (dev->dev_type ==SATA_PM_PORT ) +if (dev->dev_type ==SAS_SATA_PM_PORT )asd_ddbsite_write_byte (asd_ha,ddb,DDB_TYPE ,DDB_TYPE_PM_PORT );else if (dev->tproto)asd_ddbsite_write_byte (asd_ha,ddb,DDB_TYPE ,DDB_TYPE_TARGET );
@@ -116,7 +116,7 @@ void asd_set_dmamode(struct domain_device *dev)int ddb = (int ) (unsigned long ) dev->lldd_dev;u32 qdepth =0 ; -if (dev->dev_type ==SATA_DEV || dev->dev_type ==SATA_PM_PORT ) { +if (dev->dev_type ==SAS_SATA_DEV || dev->dev_type ==SAS_SATA_PM_PORT ) {if (ata_id_has_ncq (ata_dev->id)) qdepth =ata_id_queue_depth (ata_dev->id); asd_ddbsite_write_dword(asd_ha, ddb, SATA_TAG_ALLOC_MASK,
@@ -140,8 +140,8 @@ static int asd_init_sata(struct domain_device *dev)int ddb = (int ) (unsigned long ) dev->lldd_dev;asd_ddbsite_write_word (asd_ha, ddb,ATA_CMD_SCBPTR ,0xFFFF ); -if (dev->dev_type ==SATA_DEV || dev->dev_type ==SATA_PM || - dev->dev_type ==SATA_PM_PORT ) { +if (dev->dev_type ==SAS_SATA_DEV || dev->dev_type ==SAS_SATA_PM || + dev->dev_type ==SAS_SATA_PM_PORT ) {struct dev_to_host_fis *fis = (struct dev_to_host_fis *) dev->frame_rcvd;asd_ddbsite_write_byte (asd_ha, ddb,SATA_STATUS , fis->status);
@@ -174,7 +174,7 @@ static int asd_init_target_ddb(struct domain_device *dev)asd_ddbsite_write_byte (asd_ha, ddb,CONN_MASK , dev->port->phy_mask);if (dev->port->oob_mode !=SATA_OOB_MODE ) { flags |=OPEN_REQUIRED ; -if ((dev->dev_type ==SATA_DEV ) || +if ((dev->dev_type ==SAS_SATA_DEV ) || (dev->tproto &SAS_PROTOCOL_STP )) {struct smp_resp *rps_resp = &dev->sata_dev.rps_resp; if (rps_resp->frame_type == SMP_RESPONSE &&
@@ -188,8 +188,8 @@ static int asd_init_target_ddb(struct domain_device *dev) }else { flags |=CONCURRENT_CONN_SUPP ;if (!dev->parent && - (dev->dev_type ==EDGE_DEV || - dev->dev_type ==FANOUT_DEV )) + (dev->dev_type ==SAS_EDGE_EXPANDER_DEVICE || + dev->dev_type ==SAS_FANOUT_EXPANDER_DEVICE ))asd_ddbsite_write_byte (asd_ha, ddb,MAX_CCONN ,4 );else
@@ -198,7 +198,7 @@ static int asd_init_target_ddb(struct domain_device *dev)asd_ddbsite_write_byte (asd_ha, ddb,NUM_CTX ,1 ); } } -if (dev->dev_type ==SATA_PM ) +if (dev->dev_type ==SAS_SATA_PM ) flags |=SATA_MULTIPORT ;asd_ddbsite_write_byte (asd_ha, ddb,DDB_TARG_FLAGS , flags);
@@ -211,7 +211,7 @@ static int asd_init_target_ddb(struct domain_device *dev)asd_ddbsite_write_word (asd_ha, ddb,SEND_QUEUE_TAIL ,0xFFFF );asd_ddbsite_write_word (asd_ha, ddb,SISTER_DDB ,0xFFFF ); -if (dev->dev_type ==SATA_DEV || (dev->tproto &SAS_PROTOCOL_STP )) { +if (dev->dev_type ==SAS_SATA_DEV || (dev->tproto &SAS_PROTOCOL_STP )) { i =asd_init_sata (dev);if (i <0 ) {asd_free_ddb (asd_ha, ddb);
@@ -219,7 +219,7 @@ static int asd_init_target_ddb(struct domain_device *dev) } } -if (dev->dev_type ==SAS_END_DEV ) { +if (dev->dev_type ==SAS_END_DEVICE ) {struct sas_end_device *rdev =rphy_to_end_device (dev->rphy);if (rdev->I_T_nexus_loss_timeout >0 ) asd_ddbsite_write_word(asd_ha, ddb, ITNL_TIMEOUT,
@@ -328,10 +328,10 @@ int asd_dev_found(struct domain_device *dev)spin_lock_irqsave (&asd_ha->hw_prof.ddb_lock, flags);switch (dev->dev_type) { -case SATA_PM : +case SAS_SATA_PM : res =asd_init_sata_pm_ddb (dev);break ; -case SATA_PM_PORT : +case SAS_SATA_PM_PORT : res =asd_init_sata_pm_port_ddb (dev);break ;default :
drivers/scsi/aic94xx/aic94xx_hwi.c +1 -1
@@ -74,7 +74,7 @@ static void asd_init_phy_identify(struct asd_phy *phy)memset (phy->identify_frame,0 ,sizeof (*phy->identify_frame)); - phy->identify_frame->dev_type =SAS_END_DEV ; + phy->identify_frame->dev_type =SAS_END_DEVICE ;if (phy->sas_phy.role &PHY_ROLE_INITIATOR ) phy->identify_frame->initiator_bits = phy->sas_phy.iproto;if (phy->sas_phy.role &PHY_ROLE_TARGET )
drivers/scsi/aic94xx/aic94xx_tmf.c +1 -1
@@ -184,7 +184,7 @@ int asd_I_T_nexus_reset(struct domain_device *dev)struct sas_phy *phy =sas_get_local_phy (dev);/* Standard mandates link reset for ATA (type 0) and * hard reset for SSP (type 1) */ -int reset_type = (dev->dev_type ==SATA_DEV || +int reset_type = (dev->dev_type ==SAS_SATA_DEV || (dev->tproto &SAS_PROTOCOL_STP )) ?0 :1 ;asd_clear_nexus_I_T (dev,NEXUS_PHASE_PRE );
drivers/scsi/isci/remote_device.c +2 -2
@@ -1085,7 +1085,7 @@ static void sci_remote_device_ready_state_enter(struct sci_base_state_machine *sstruct isci_host *ihost = idev->owning_port->owning_controller;struct domain_device *dev = idev->domain_dev; -if (dev->dev_type ==SATA_DEV || (dev->tproto &SAS_PROTOCOL_SATA )) { +if (dev->dev_type ==SAS_SATA_DEV || (dev->tproto &SAS_PROTOCOL_SATA )) {sci_change_state (&idev->sm,SCI_STP_DEV_IDLE ); }else if (dev_is_expander (dev)) {sci_change_state (&idev->sm,SCI_SMP_DEV_IDLE );
@@ -1098,7 +1098,7 @@ static void sci_remote_device_ready_state_exit(struct sci_base_state_machine *smstruct isci_remote_device *idev =container_of (sm,typeof (*idev), sm);struct domain_device *dev = idev->domain_dev; -if (dev->dev_type ==SAS_END_DEV ) { +if (dev->dev_type ==SAS_END_DEVICE ) {struct isci_host *ihost = idev->owning_port->owning_controller; isci_remote_device_not_ready(ihost, idev,
drivers/scsi/isci/remote_device.h +1 -1
@@ -297,7 +297,7 @@ static inline struct isci_remote_device *rnc_to_dev(struct sci_remote_node_contestatic inline bool dev_is_expander (struct domain_device *dev) { -return dev->dev_type ==EDGE_DEV || dev->dev_type ==FANOUT_DEV ; +return dev->dev_type ==SAS_EDGE_EXPANDER_DEVICE || dev->dev_type ==SAS_FANOUT_EXPANDER_DEVICE ; }static inline void sci_remote_device_decrement_request_count (struct isci_remote_device *idev)
drivers/scsi/isci/request.c +3 -3
@@ -2978,7 +2978,7 @@ static void sci_request_started_state_enter(struct sci_base_state_machine *sm)/* all unaccelerated request types (non ssp or ncq) handled with * substates */ -if (!task && dev->dev_type ==SAS_END_DEV ) { +if (!task && dev->dev_type ==SAS_END_DEVICE ) { state =SCI_REQ_TASK_WAIT_TC_COMP ; }else if (task && task->task_proto ==SAS_PROTOCOL_SMP ) { state =SCI_REQ_SMP_WAIT_RESP ;
@@ -3101,7 +3101,7 @@ sci_io_request_construct(struct isci_host *ihost,if (idev->rnc.remote_node_index ==SCIC_SDS_REMOTE_NODE_CONTEXT_INVALID_INDEX )return SCI_FAILURE_INVALID_REMOTE_DEVICE ; -if (dev->dev_type ==SAS_END_DEV ) +if (dev->dev_type ==SAS_END_DEVICE )/* pass */ ;else if (dev_is_sata (dev))memset (&ireq->stp.cmd,0 ,sizeof (ireq->stp.cmd));
@@ -3125,7 +3125,7 @@ enum sci_status sci_task_request_construct(struct isci_host *ihost,/* Build the common part of the request */ sci_general_request_construct (ihost, idev, ireq); -if (dev->dev_type ==SAS_END_DEV ||dev_is_sata (dev)) { +if (dev->dev_type ==SAS_END_DEVICE ||dev_is_sata (dev)) {set_bit (IREQ_TMF , &ireq->flags);memset (ireq->tc,0 ,sizeof (struct scu_task_context ));
drivers/scsi/isci/task.c +1 -1
@@ -250,7 +250,7 @@ static struct isci_request *isci_task_request_build(struct isci_host *ihost, }/* XXX convert to get this from task->tproto like other drivers */ -if (dev->dev_type ==SAS_END_DEV ) { +if (dev->dev_type ==SAS_END_DEVICE ) { isci_tmf->proto =SAS_PROTOCOL_SSP ; status =sci_task_request_construct_ssp (ireq);if (status !=SCI_SUCCESS )
drivers/scsi/libsas/sas_ata.c +9 -9
@@ -285,14 +285,14 @@ int sas_get_ata_info(struct domain_device *dev, struct ex_phy *phy)if (phy->attached_tproto &SAS_PROTOCOL_STP ) dev->tproto = phy->attached_tproto;if (phy->attached_sata_dev) - dev->tproto |=SATA_DEV ; + dev->tproto |=SAS_SATA_DEV ; -if (phy->attached_dev_type ==SATA_PENDING ) - dev->dev_type =SATA_PENDING ; +if (phy->attached_dev_type ==SAS_SATA_PENDING ) + dev->dev_type =SAS_SATA_PENDING ;else {int res; - dev->dev_type =SATA_DEV ; + dev->dev_type =SAS_SATA_DEV ; res =sas_get_report_phy_sata (dev->parent, phy->phy_id, &dev->sata_dev.rps_resp);if (res) {
@@ -314,7 +314,7 @@ static int sas_ata_clear_pending(struct domain_device *dev, struct ex_phy *phy)int res;/* we weren't pending, so successfully end the reset sequence now */ -if (dev->dev_type !=SATA_PENDING ) +if (dev->dev_type !=SAS_SATA_PENDING )return 1 ;/* hmmm, if this succeeds do we need to repost the domain_device to the
@@ -348,9 +348,9 @@ static int smp_ata_check_ready(struct ata_link *link)return 0 ;switch (ex_phy->attached_dev_type) { -case SATA_PENDING : +case SAS_SATA_PENDING :return 0 ; -case SAS_END_DEV : +case SAS_END_DEVICE :if (ex_phy->attached_sata_dev)return sas_ata_clear_pending (dev, ex_phy);default :
@@ -631,7 +631,7 @@ static void sas_get_ata_command_set(struct domain_device *dev)struct dev_to_host_fis *fis = (struct dev_to_host_fis *) dev->frame_rcvd; -if (dev->dev_type ==SATA_PENDING ) +if (dev->dev_type ==SAS_SATA_PENDING )return ; if ((fis->sector_count == 1 && /* ATA */
@@ -797,7 +797,7 @@ int sas_discover_sata(struct domain_device *dev) {int res; -if (dev->dev_type ==SATA_PM ) +if (dev->dev_type ==SAS_SATA_PM )return -ENODEV ;sas_get_ata_command_set (dev);
drivers/scsi/libsas/sas_discover.c +17 -17
@@ -39,11 +39,11 @@void sas_init_dev (struct domain_device *dev) {switch (dev->dev_type) { -case SAS_END_DEV : +case SAS_END_DEVICE :INIT_LIST_HEAD (&dev->ssp_dev.eh_list_node);break ; -case EDGE_DEV : -case FANOUT_DEV : +case SAS_EDGE_EXPANDER_DEVICE : +case SAS_FANOUT_EXPANDER_DEVICE :INIT_LIST_HEAD (&dev->ex_dev.children);mutex_init (&dev->ex_dev.cmd_mutex);break ;
@@ -93,9 +93,9 @@ static int sas_get_port_device(struct asd_sas_port *port)if (fis->interrupt_reason ==1 && fis->lbal ==1 && fis->byte_count_low==0x69 && fis->byte_count_high ==0x96 && (fis->device & ~0x10 ) ==0 ) - dev->dev_type =SATA_PM ; + dev->dev_type =SAS_SATA_PM ;else - dev->dev_type =SATA_DEV ; + dev->dev_type =SAS_SATA_DEV ; dev->tproto =SAS_PROTOCOL_SATA ; }else { struct sas_identify_frame *id =
@@ -109,21 +109,21 @@ static int sas_get_port_device(struct asd_sas_port *port) dev->port = port;switch (dev->dev_type) { -case SATA_DEV : +case SAS_SATA_DEV : rc =sas_ata_init (dev);if (rc) { rphy =NULL ;break ; }/* fall through */ -case SAS_END_DEV : +case SAS_END_DEVICE : rphy =sas_end_device_alloc (port->port);break ; -case EDGE_DEV : +case SAS_EDGE_EXPANDER_DEVICE : rphy =sas_expander_alloc (port->port,SAS_EDGE_EXPANDER_DEVICE );break ; -case FANOUT_DEV : +case SAS_FANOUT_EXPANDER_DEVICE : rphy =sas_expander_alloc (port->port,SAS_FANOUT_EXPANDER_DEVICE );break ;
@@ -156,7 +156,7 @@ static int sas_get_port_device(struct asd_sas_port *port) dev->rphy = rphy;get_device (&dev->rphy->dev); -if (dev_is_sata (dev) || dev->dev_type ==SAS_END_DEV ) +if (dev_is_sata (dev) || dev->dev_type ==SAS_END_DEVICE )list_add_tail (&dev->disco_list_node, &port->disco_list);else {spin_lock_irq (&port->dev_list_lock);
@@ -315,7 +315,7 @@ void sas_free_device(struct kref *kref) dev->phy =NULL ;/* remove the phys and ports, everything else should be gone */ -if (dev->dev_type ==EDGE_DEV || dev->dev_type ==FANOUT_DEV ) +if (dev->dev_type ==SAS_EDGE_EXPANDER_DEVICE || dev->dev_type ==SAS_FANOUT_EXPANDER_DEVICE )kfree (dev->ex_dev.ex_phy);if (dev_is_sata (dev) && dev->sata_dev.ap) {
@@ -343,7 +343,7 @@ static void sas_unregister_common_dev(struct asd_sas_port *port, struct domain_dspin_unlock_irq (&port->dev_list_lock);spin_lock_irq (&ha->lock); -if (dev->dev_type ==SAS_END_DEV && +if (dev->dev_type ==SAS_END_DEVICE && !list_empty (&dev->ssp_dev.eh_list_node)) {list_del_init (&dev->ssp_dev.eh_list_node); ha->eh_active--;
@@ -457,15 +457,15 @@ static void sas_discover_domain(struct work_struct *work) task_pid_nr(current));switch (dev->dev_type) { -case SAS_END_DEV : +case SAS_END_DEVICE : error =sas_discover_end_dev (dev);break ; -case EDGE_DEV : -case FANOUT_DEV : +case SAS_EDGE_EXPANDER_DEVICE : +case SAS_FANOUT_EXPANDER_DEVICE : error =sas_discover_root_expander (dev);break ; -case SATA_DEV : -case SATA_PM : +case SAS_SATA_DEV : +case SAS_SATA_PM :#ifdef CONFIG_SCSI_SAS_ATA error =sas_discover_sata (dev);break ;
drivers/scsi/libsas/sas_expander.c +55 -55
310 lines not on this page · raw message
drivers/scsi/libsas/sas_internal.h +5 -5
@@ -131,16 +131,16 @@ static inline void sas_fill_in_rphy(struct domain_device *dev, rphy->identify.initiator_port_protocols = dev->iproto; rphy->identify.target_port_protocols = dev->tproto;switch (dev->dev_type) { -case SATA_DEV : +case SAS_SATA_DEV :/* FIXME: need sata device type */ -case SAS_END_DEV : -case SATA_PENDING : +case SAS_END_DEVICE : +case SAS_SATA_PENDING : rphy->identify.device_type =SAS_END_DEVICE ;break ; -case EDGE_DEV : +case SAS_EDGE_EXPANDER_DEVICE : rphy->identify.device_type =SAS_EDGE_EXPANDER_DEVICE ;break ; -case FANOUT_DEV : +case SAS_FANOUT_EXPANDER_DEVICE : rphy->identify.device_type =SAS_FANOUT_EXPANDER_DEVICE ;break ;default :
drivers/scsi/libsas/sas_port.c +1 -1
@@ -69,7 +69,7 @@ static void sas_resume_port(struct asd_sas_phy *phy)continue ; } -if (dev->dev_type ==EDGE_DEV || dev->dev_type ==FANOUT_DEV ) { +if (dev->dev_type ==SAS_EDGE_EXPANDER_DEVICE || dev->dev_type ==SAS_FANOUT_EXPANDER_DEVICE ) { dev->ex_dev.ex_change_count =-1 ;for (i =0 ; i < dev->ex_dev.num_phys; i++) {struct ex_phy *phy = &dev->ex_dev.ex_phy[i];
drivers/scsi/mvsas/mv_init.c +1 -1
@@ -254,7 +254,7 @@ static int mvs_alloc(struct mvs_info *mvi, struct Scsi_Host *shost) }for (i =0 ; i <MVS_MAX_DEVICES ; i++) { mvi->devices[i].taskfileset =MVS_ID_NOT_MAPPED ; - mvi->devices[i].dev_type =NO_DEVICE ; + mvi->devices[i].dev_type =SAS_PHY_UNUSED ; mvi->devices[i].device_id = i; mvi->devices[i].dev_status =MVS_DEV_NORMAL ;init_timer (&mvi->devices[i].timer);
drivers/scsi/mvsas/mv_sas.c +8 -8
@@ -706,7 +706,7 @@ static int mvs_task_prep_ssp(struct mvs_info *mvi,return 0 ; } -#define DEV_IS_GONE (mvi_dev) ((!mvi_dev || (mvi_dev->dev_type == NO_DEVICE))) +#define DEV_IS_GONE (mvi_dev) ((!mvi_dev || (mvi_dev->dev_type == SAS_PHY_UNUSED)))static int mvs_task_prep (struct sas_task *task,struct mvs_info *mvi,int is_tmf,struct mvs_tmf_task *tmf,int *pass) {
@@ -726,7 +726,7 @@ static int mvs_task_prep(struct sas_task *task, struct mvs_info *mvi, int is_tmf* libsas will use dev->port, should * not call task_done for sata */ -if (dev->dev_type !=SATA_DEV ) +if (dev->dev_type !=SAS_SATA_DEV ) task->task_done (task);return rc; }
@@ -1159,10 +1159,10 @@ void mvs_update_phyinfo(struct mvs_info *mvi, int i, int get_st) phy->identify.device_type = phy->att_dev_info &PORT_DEV_TYPE_MASK ; -if (phy->identify.device_type ==SAS_END_DEV ) +if (phy->identify.device_type ==SAS_END_DEVICE ) phy->identify.target_port_protocols =SAS_PROTOCOL_SSP ; -else if (phy->identify.device_type !=NO_DEVICE ) +else if (phy->identify.device_type !=SAS_PHY_UNUSED ) phy->identify.target_port_protocols =SAS_PROTOCOL_SMP ;if (oob_done)
@@ -1260,7 +1260,7 @@ struct mvs_device *mvs_alloc_dev(struct mvs_info *mvi) {u32 dev;for (dev =0 ; dev <MVS_MAX_DEVICES ; dev++) { -if (mvi->devices[dev].dev_type ==NO_DEVICE ) { +if (mvi->devices[dev].dev_type ==SAS_PHY_UNUSED ) { mvi->devices[dev].device_id = dev;return &mvi->devices[dev]; }
@@ -1278,7 +1278,7 @@ void mvs_free_dev(struct mvs_device *mvi_dev)u32 id = mvi_dev->device_id;memset (mvi_dev,0 ,sizeof (*mvi_dev)); mvi_dev->device_id = id; - mvi_dev->dev_type =NO_DEVICE ; + mvi_dev->dev_type =SAS_PHY_UNUSED ; mvi_dev->dev_status =MVS_DEV_NORMAL ; mvi_dev->taskfileset =MVS_ID_NOT_MAPPED ; }
@@ -1480,7 +1480,7 @@ static int mvs_debug_I_T_nexus_reset(struct domain_device *dev) {int rc;struct sas_phy *phy =sas_get_local_phy (dev); -int reset_type = (dev->dev_type ==SATA_DEV || +int reset_type = (dev->dev_type ==SAS_SATA_DEV || (dev->tproto &SAS_PROTOCOL_STP )) ?0 :1 ; rc =sas_phy_reset (phy, reset_type);sas_put_local_phy (phy);
@@ -1629,7 +1629,7 @@ int mvs_abort_task(struct sas_task *task) }else if (task->task_proto &SAS_PROTOCOL_SATA || task->task_proto &SAS_PROTOCOL_STP ) { -if (SATA_DEV == dev->dev_type) { +if (SAS_SATA_DEV == dev->dev_type) {struct mvs_slot_info *slot = task->lldd_task;u32 slot_idx = (u32)(slot - mvi->slot_info); mv_dprintk("mvs_abort_task() mvi=%p task=%p "
drivers/scsi/mvsas/mv_sas.h +2 -2
@@ -67,7 +67,7 @@ extern const struct mvs_dispatch mvs_94xx_dispatch;extern struct kmem_cache *mvs_task_list_cache;#define DEV_IS_EXPANDER (type) \ - ((type == EDGE_DEV) || (type == FANOUT_DEV)) + ((type == SAS_EDGE_EXPANDER_DEVICE) || (type == SAS_FANOUT_EXPANDER_DEVICE))#define bit (n) ((u64)1 << n)
@@ -241,7 +241,7 @@ struct mvs_phy {struct mvs_device {struct list_head dev_entry; -enum sas_dev_type dev_type; +enum sas_device_type dev_type;struct mvs_info *mvi_info;struct domain_device *sas_device;struct timer_list timer;
drivers/scsi/pm8001/pm8001_hwi.c +9 -9
@@ -1505,7 +1505,7 @@ void pm8001_work_fn(struct work_struct *work) pm8001_dev = pw->data;/* Most stash device structure */ if ((pm8001_dev ==NULL ) || ((pw->handler !=IO_XFER_ERROR_BREAK ) - && (pm8001_dev->dev_type ==NO_DEVICE ))) { + && (pm8001_dev->dev_type ==SAS_PHY_UNUSED ))) {kfree (pw);return ; }
@@ -3443,7 +3443,7 @@ hw_event_sata_phy_up(struct pm8001_hba_info *pm8001_ha, void *piomb) sizeof(struct dev_to_host_fis)); phy->frame_rcvd_size =sizeof (struct dev_to_host_fis ); phy->identify.target_port_protocols =SAS_PROTOCOL_SATA ; - phy->identify.device_type =SATA_DEV ; + phy->identify.device_type =SAS_SATA_DEV ;pm8001_get_attached_sas_addr (phy, phy->sas_phy.attached_sas_addr);spin_unlock_irqrestore (&phy->sas_phy.frame_rcvd_lock, flags);pm8001_bytes_dmaed (pm8001_ha, phy_id);
@@ -4465,7 +4465,7 @@ pm8001_chip_phy_start_req(struct pm8001_hba_info *pm8001_ha, u8 phy_id) payload.ase_sh_lm_slr_phyid =cpu_to_le32 (SPINHOLD_DISABLE |LINKMODE_AUTO |LINKRATE_15 |LINKRATE_30 |LINKRATE_60 | phy_id); - payload.sas_identify.dev_type =SAS_END_DEV ; + payload.sas_identify.dev_type =SAS_END_DEVICE ; payload.sas_identify.initiator_bits =SAS_PROTOCOL_ALL ;memcpy (payload.sas_identify.sas_addr, pm8001_ha->sas_addr,SAS_ADDR_SIZE );
@@ -4527,11 +4527,11 @@ static int pm8001_chip_reg_dev_req(struct pm8001_hba_info *pm8001_ha,if (flag ==1 ) stp_sspsmp_sata =0x02 ;/*direct attached sata */ else { -if (pm8001_dev->dev_type ==SATA_DEV ) +if (pm8001_dev->dev_type ==SAS_SATA_DEV ) stp_sspsmp_sata =0x00 ;/* stp*/ -else if (pm8001_dev->dev_type ==SAS_END_DEV || - pm8001_dev->dev_type ==EDGE_DEV || - pm8001_dev->dev_type ==FANOUT_DEV ) +else if (pm8001_dev->dev_type ==SAS_END_DEVICE || + pm8001_dev->dev_type ==SAS_EDGE_EXPANDER_DEVICE || + pm8001_dev->dev_type ==SAS_FANOUT_EXPANDER_DEVICE ) stp_sspsmp_sata =0x01 ;/*ssp or smp*/ }if (parent_dev &&DEV_IS_EXPANDER (parent_dev->dev_type))
@@ -4662,9 +4662,9 @@ int pm8001_chip_abort_task(struct pm8001_hba_info *pm8001_ha,PM8001_EH_DBG (pm8001_ha,pm8001_printk ("cmd_tag = %x, abort task tag = 0x%x" , cmd_tag, task_tag)); -if (pm8001_dev->dev_type ==SAS_END_DEV ) +if (pm8001_dev->dev_type ==SAS_END_DEVICE ) opc =OPC_INB_SSP_ABORT ; -else if (pm8001_dev->dev_type ==SATA_DEV ) +else if (pm8001_dev->dev_type ==SAS_SATA_DEV ) opc =OPC_INB_SATA_ABORT ;else opc =OPC_INB_SMP_ABORT ;/* SMP */
drivers/scsi/pm8001/pm8001_init.c +1 -1
@@ -361,7 +361,7 @@ static int pm8001_alloc(struct pm8001_hba_info *pm8001_ha, pm8001_ha->devices = pm8001_ha->memoryMap.region[DEV_MEM ].virt_ptr;for (i =0 ; i <PM8001_MAX_DEVICES ; i++) { - pm8001_ha->devices[i].dev_type =NO_DEVICE ; + pm8001_ha->devices[i].dev_type =SAS_PHY_UNUSED ; pm8001_ha->devices[i].id = i; pm8001_ha->devices[i].device_id =PM8001_MAX_DEVICES ; pm8001_ha->devices[i].running_req =0 ;
drivers/scsi/pm8001/pm8001_sas.c +7 -7
@@ -357,7 +357,7 @@ static int sas_find_local_port_id(struct domain_device *dev)* @tmf: the task management IU */ #define DEV_IS_GONE (pm8001_dev) \ - ((!pm8001_dev || (pm8001_dev->dev_type == NO_DEVICE))) + ((!pm8001_dev || (pm8001_dev->dev_type == SAS_PHY_UNUSED)))static int pm8001_task_exec (struct sas_task *task,const int num,gfp_t gfp_flags,int is_tmf,struct pm8001_tmf_task *tmf) {
@@ -375,7 +375,7 @@ static int pm8001_task_exec(struct sas_task *task, const int num,struct task_status_struct *tsm = &t->task_status; tsm->resp =SAS_TASK_UNDELIVERED ; tsm->stat =SAS_PHY_DOWN ; -if (dev->dev_type !=SATA_DEV ) +if (dev->dev_type !=SAS_SATA_DEV ) t->task_done (t);return 0 ; }
@@ -553,7 +553,7 @@ struct pm8001_device *pm8001_alloc_dev(struct pm8001_hba_info *pm8001_ha) {u32 dev;for (dev =0 ; dev <PM8001_MAX_DEVICES ; dev++) { -if (pm8001_ha->devices[dev].dev_type ==NO_DEVICE ) { +if (pm8001_ha->devices[dev].dev_type ==SAS_PHY_UNUSED ) { pm8001_ha->devices[dev].id = dev;return &pm8001_ha->devices[dev]; }
@@ -589,7 +589,7 @@ static void pm8001_free_dev(struct pm8001_device *pm8001_dev)u32 id = pm8001_dev->id;memset (pm8001_dev,0 ,sizeof (*pm8001_dev)); pm8001_dev->id = id; - pm8001_dev->dev_type =NO_DEVICE ; + pm8001_dev->dev_type =SAS_PHY_UNUSED ; pm8001_dev->device_id =PM8001_MAX_DEVICES ; pm8001_dev->sas_device =NULL ; }
@@ -647,7 +647,7 @@ static int pm8001_dev_found_notify(struct domain_device *dev) res =-1 ; } }else { -if (dev->dev_type ==SATA_DEV ) { +if (dev->dev_type ==SAS_SATA_DEV ) { pm8001_device->attached_phy = dev->rphy->identify.phy_identifier; flag =1 ;/* directly sata*/
@@ -657,7 +657,7 @@ static int pm8001_dev_found_notify(struct domain_device *dev)PM8001_CHIP_DISP ->reg_dev_req (pm8001_ha, pm8001_device, flag);spin_unlock_irqrestore (&pm8001_ha->lock, flags);wait_for_completion (&completion); -if (dev->dev_type ==SAS_END_DEV ) +if (dev->dev_type ==SAS_END_DEVICE )msleep (50 ); pm8001_ha->flags =PM8001F_RUN_TIME ;return 0 ;
@@ -927,7 +927,7 @@ void pm8001_open_reject_retry(struct pm8001_ccb_info *ccb = &pm8001_ha->ccb_info[i]; pm8001_dev = ccb->device; -if (!pm8001_dev || (pm8001_dev->dev_type ==NO_DEVICE )) +if (!pm8001_dev || (pm8001_dev->dev_type ==SAS_PHY_UNUSED ))continue ;if (!device_to_close) {uintptr_t d = (uintptr_t )pm8001_dev
drivers/scsi/pm8001/pm8001_sas.h +2 -2
@@ -103,7 +103,7 @@ do { \#define PM8001_READ_VPD -#define DEV_IS_EXPANDER (type) ((type == EDGE_DEV) || (type == FANOUT_DEV)) +#define DEV_IS_EXPANDER (type) ((type == SAS_EDGE_EXPANDER_DEVICE) || (type == SAS_FANOUT_EXPANDER_DEVICE))#define PM8001_NAME_LENGTH 32/* generic length of strings */ extern struct list_head hba_list;
@@ -206,7 +206,7 @@ struct pm8001_phy { };struct pm8001_device { -enum sas_dev_type dev_type; +enum sas_device_type dev_type;struct domain_device *sas_device;u32 attached_phy;u32 id;
drivers/scsi/pm8001/pm80xx_hwi.c +6 -6
@@ -2684,7 +2684,7 @@ hw_event_sata_phy_up(struct pm8001_hba_info *pm8001_ha, void *piomb) sizeof(struct dev_to_host_fis)); phy->frame_rcvd_size =sizeof (struct dev_to_host_fis ); phy->identify.target_port_protocols =SAS_PROTOCOL_SATA ; - phy->identify.device_type =SATA_DEV ; + phy->identify.device_type =SAS_SATA_DEV ;pm8001_get_attached_sas_addr (phy, phy->sas_phy.attached_sas_addr);spin_unlock_irqrestore (&phy->sas_phy.frame_rcvd_lock, flags);pm8001_bytes_dmaed (pm8001_ha, phy_id);
@@ -3952,7 +3952,7 @@ pm80xx_chip_phy_start_req(struct pm8001_hba_info *pm8001_ha, u8 phy_id)Have to add "SAS PHY Analog Setup SPASTI 1 Byte" Based on need **/ - payload.sas_identify.dev_type =SAS_END_DEV ; + payload.sas_identify.dev_type =SAS_END_DEVICE ; payload.sas_identify.initiator_bits =SAS_PROTOCOL_ALL ;memcpy (payload.sas_identify.sas_addr, pm8001_ha->sas_addr,SAS_ADDR_SIZE );
@@ -4015,11 +4015,11 @@ static int pm80xx_chip_reg_dev_req(struct pm8001_hba_info *pm8001_ha,if (flag ==1 ) { stp_sspsmp_sata =0x02 ;/*direct attached sata */ }else { -if (pm8001_dev->dev_type ==SATA_DEV ) +if (pm8001_dev->dev_type ==SAS_SATA_DEV ) stp_sspsmp_sata =0x00 ;/* stp*/ -else if (pm8001_dev->dev_type ==SAS_END_DEV || - pm8001_dev->dev_type ==EDGE_DEV || - pm8001_dev->dev_type ==FANOUT_DEV ) +else if (pm8001_dev->dev_type ==SAS_END_DEVICE || + pm8001_dev->dev_type ==SAS_EDGE_EXPANDER_DEVICE || + pm8001_dev->dev_type ==SAS_FANOUT_EXPANDER_DEVICE ) stp_sspsmp_sata =0x01 ;/*ssp or smp*/ }if (parent_dev &&DEV_IS_EXPANDER (parent_dev->dev_type))
include/scsi/libsas.h +2 -2
@@ -118,7 +118,7 @@ struct ex_phy {enum ex_phy_state phy_state; -enum sas_dev_type attached_dev_type; +enum sas_device_type attached_dev_type;enum sas_linkrate linkrate; u8 attached_sata_host:1;
@@ -195,7 +195,7 @@ enum {struct domain_device {spinlock_t done_lock; -enum sas_dev_type dev_type; +enum sas_device_type dev_type;enum sas_linkrate linkrate;enum sas_linkrate min_linkrate;
include/scsi/sas.h +12 -10
@@ -90,16 +90,18 @@ enum sas_oob_mode { };/* See sas_discover.c if you plan on changing these */ -enum sas_dev_type { -NO_DEVICE =0 ,/* protocol */ -SAS_END_DEV =1 ,/* protocol */ -EDGE_DEV =2 ,/* protocol */ -FANOUT_DEV =3 ,/* protocol */ -SAS_HA =4 , -SATA_DEV =5 , -SATA_PM =7 , -SATA_PM_PORT =8 , -SATA_PENDING =9 , +enum sas_device_type { +/* these are SAS protocol defined (attached device type field) */ +SAS_PHY_UNUSED =0 , +SAS_END_DEVICE =1 , +SAS_EDGE_EXPANDER_DEVICE =2 , +SAS_FANOUT_EXPANDER_DEVICE =3 , +/* these are internal to libsas */ +SAS_HA =4 , +SAS_SATA_DEV =5 , +SAS_SATA_PM =7 , +SAS_SATA_PM_PORT =8 , +SAS_SATA_PENDING =9 , };enum sas_protocol {
include/scsi/sas_ata.h +2 -2
@@ -32,8 +32,8 @@static inline int dev_is_sata (struct domain_device *dev) { -return dev->dev_type ==SATA_DEV || dev->dev_type ==SATA_PM || - dev->dev_type ==SATA_PM_PORT || dev->dev_type ==SATA_PENDING ; +return dev->dev_type ==SAS_SATA_DEV || dev->dev_type ==SAS_SATA_PM || + dev->dev_type ==SAS_SATA_PM_PORT || dev->dev_type ==SAS_SATA_PENDING ; }int sas_get_ata_info (struct domain_device *dev,struct ex_phy *phy);
include/scsi/scsi_transport_sas.h +0 -7
@@ -10,13 +10,6 @@ struct scsi_transport_template;struct sas_rphy ;struct request ; -enum sas_device_type { -SAS_PHY_UNUSED =0 , -SAS_END_DEVICE =1 , -SAS_EDGE_EXPANDER_DEVICE =2 , -SAS_FANOUT_EXPANDER_DEVICE =3 , -}; -static inline int sas_protocol_ata (enum sas_protocol proto) { return ((proto & SAS_PROTOCOL_SATA) ||
Thanks for fix.
Lindar.
-----Original Message-----
From: James Bottomley [mailto:[email protected]]
Sent: Wednesday, May 08, 2013 5:44 AM
To: linux-scsi
Cc: Lukasz Dorau; Maciej Patelczyk; Dave Jiang; [email protected]; [email protected]; Xiangliang Yu
Subject: [PATCH] sas: unify the pointlessly separated enums sas_dev_type and sas_device_type
These enums have been separate since the dawn of SAS, mainly because the latter is a procotol only enum and the former includes additional state for libsas. The dichotomy causes endless confusion about which one you should use where and leads to pointless warnings like this:
drivers/scsi/mvsas/mv_sas.c: In function 'mvs_update_phyinfo':
drivers/scsi/mvsas/mv_sas.c:1162:34: warning: comparison between 'enum sas_device_type' and 'enum sas_dev_type' [-Wenum-compare]
Fix by eliminating one of them. The one kept is effectively the sas.h one, but call it sas_device_type and make sure the enums are all properly namespaced with the SAS_ prefix.
---