summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/bfa/bfa_fcpim.c
diff options
context:
space:
mode:
authorJing Huang <huangj@brocade.com>2010-07-08 19:57:33 -0700
committerJames Bottomley <James.Bottomley@suse.de>2010-07-27 12:04:17 -0500
commit36d345a703b7b3f80a56ee37abb7908c52d1cd67 (patch)
treefe038e44b6c274a55814d1bae84f0cc21ad4b15a /drivers/scsi/bfa/bfa_fcpim.c
parent4b5e759dca9fb26d921c1267283350004dbf197b (diff)
[SCSI] bfa: add dynamic queue selection
Add new bfa functionality to support dynamic queue selection (IO redirection). IO redirection can only be enabled when QoS is disabled. Signed-off-by: Jing Huang <huangj@brocade.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/bfa/bfa_fcpim.c')
-rw-r--r--drivers/scsi/bfa/bfa_fcpim.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/scsi/bfa/bfa_fcpim.c b/drivers/scsi/bfa/bfa_fcpim.c
index 12849e9071c..8c703d8dc94 100644
--- a/drivers/scsi/bfa/bfa_fcpim.c
+++ b/drivers/scsi/bfa/bfa_fcpim.c
@@ -167,4 +167,28 @@ bfa_fcpim_qdepth_get(struct bfa_s *bfa)
return fcpim->q_depth;
}
+void
+bfa_fcpim_update_ioredirect(struct bfa_s *bfa)
+{
+ bfa_boolean_t ioredirect;
+
+ /*
+ * IO redirection is turned off when QoS is enabled and vice versa
+ */
+ ioredirect = bfa_fcport_is_qos_enabled(bfa) ? BFA_FALSE : BFA_TRUE;
+ /*
+ * Notify the bfad module of a possible state change in
+ * IO redirection capability, due to a QoS state change. bfad will
+ * check on the support for io redirection and update the
+ * fcpim's ioredirect state accordingly.
+ */
+ bfa_cb_ioredirect_state_change((void *)(bfa->bfad), ioredirect);
+}
+
+void
+bfa_fcpim_set_ioredirect(struct bfa_s *bfa, bfa_boolean_t state)
+{
+ struct bfa_fcpim_mod_s *fcpim = BFA_FCPIM_MOD(bfa);
+ fcpim->ioredirect = state;
+}