Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f8daa6e6 authored by Dan Williams's avatar Dan Williams Committed by James Bottomley
Browse files

[SCSI] libsas: convert ha->state to flags



In preparation for adding new states (SAS_HA_DRAINING, SAS_HA_FROZEN),
convert ha->state into a set of flags.

Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent b15ebe0b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ int sas_register_ha(struct sas_ha_struct *sas_ha)
	else if (sas_ha->lldd_queue_size == -1)
		sas_ha->lldd_queue_size = 128; /* Sanity */

	sas_ha->state = SAS_HA_REGISTERED;
	set_bit(SAS_HA_REGISTERED, &sas_ha->state);
	spin_lock_init(&sas_ha->state_lock);

	error = sas_register_phys(sas_ha);
@@ -160,7 +160,7 @@ int sas_unregister_ha(struct sas_ha_struct *sas_ha)
	/* Set the state to unregistered to avoid further
	 * events to be queued */
	spin_lock_irqsave(&sas_ha->state_lock, flags);
	sas_ha->state = SAS_HA_UNREGISTERED;
	clear_bit(SAS_HA_REGISTERED, &sas_ha->state);
	spin_unlock_irqrestore(&sas_ha->state_lock, flags);
	scsi_flush_work(sas_ha->core.shost);

+1 −1
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ static inline void sas_queue_event(int event, unsigned long *pending,
		unsigned long flags;

		spin_lock_irqsave(&sas_ha->state_lock, flags);
		if (sas_ha->state != SAS_HA_UNREGISTERED)
		if (test_bit(SAS_HA_REGISTERED, &sas_ha->state))
			scsi_queue_work(sas_ha->core.shost, work);
		spin_unlock_irqrestore(&sas_ha->state_lock, flags);
	}
+1 −2
Original line number Diff line number Diff line
@@ -330,7 +330,6 @@ struct sas_ha_event {

enum sas_ha_state {
	SAS_HA_REGISTERED,
	SAS_HA_UNREGISTERED
};

struct sas_ha_struct {
@@ -338,7 +337,7 @@ struct sas_ha_struct {
	struct sas_ha_event ha_events[HA_NUM_EVENTS];
	unsigned long	 pending;

	enum sas_ha_state state;
	unsigned long	  state;
	spinlock_t 	  state_lock;

	struct scsi_core core;