Lines Matching refs:ctlr
184 struct rdac_controller *ctlr; member
301 if (h->ctlr->use_ms10) { in rdac_failover_get()
305 rdac_pg = &h->ctlr->mode_select.expanded; in rdac_failover_get()
317 rdac_pg = &h->ctlr->mode_select.legacy; in rdac_failover_get()
333 rq = get_rdac_req(sdev, &h->ctlr->mode_select, data_size, WRITE); in rdac_failover_get()
338 if (h->ctlr->use_ms10) { in rdac_failover_get()
357 struct rdac_controller *ctlr; in release_controller() local
358 ctlr = container_of(kref, struct rdac_controller, kref); in release_controller()
360 list_del(&ctlr->node); in release_controller()
361 kfree(ctlr); in release_controller()
367 struct rdac_controller *ctlr, *tmp; in get_controller() local
377 ctlr = kmalloc(sizeof(*ctlr), GFP_ATOMIC); in get_controller()
378 if (!ctlr) in get_controller()
382 memcpy(ctlr->array_id, array_id, UNIQUE_ID_LEN); in get_controller()
383 ctlr->index = index; in get_controller()
384 ctlr->host = sdev->host; in get_controller()
385 memcpy(ctlr->array_name, array_name, ARRAY_LABEL_LEN); in get_controller()
387 kref_init(&ctlr->kref); in get_controller()
388 ctlr->use_ms10 = -1; in get_controller()
389 ctlr->ms_queued = 0; in get_controller()
390 ctlr->ms_sdev = NULL; in get_controller()
391 spin_lock_init(&ctlr->ms_lock); in get_controller()
392 INIT_WORK(&ctlr->ms_work, send_mode_select); in get_controller()
393 INIT_LIST_HEAD(&ctlr->ms_head); in get_controller()
394 list_add(&ctlr->node, &ctlr_list); in get_controller()
396 return ctlr; in get_controller()
508 h->ctlr = get_controller(index, array_name, array_id, sdev); in initialize_controller()
509 if (!h->ctlr) in initialize_controller()
529 h->ctlr->use_ms10 = 1; in set_mode_select()
531 h->ctlr->use_ms10 = 0; in set_mode_select()
573 (char *) h->ctlr->array_name, h->ctlr->index, in mode_select_handle_sense()
582 struct rdac_controller *ctlr = in send_mode_select() local
585 struct scsi_device *sdev = ctlr->ms_sdev; in send_mode_select()
592 spin_lock(&ctlr->ms_lock); in send_mode_select()
593 list_splice_init(&ctlr->ms_head, &list); in send_mode_select()
594 ctlr->ms_queued = 0; in send_mode_select()
595 ctlr->ms_sdev = NULL; in send_mode_select()
596 spin_unlock(&ctlr->ms_lock); in send_mode_select()
606 (char *) h->ctlr->array_name, h->ctlr->index, in send_mode_select()
622 (char *) h->ctlr->array_name, h->ctlr->index); in send_mode_select()
641 struct rdac_controller *ctlr; in queue_mode_select() local
651 ctlr = qdata->h->ctlr; in queue_mode_select()
652 spin_lock(&ctlr->ms_lock); in queue_mode_select()
653 list_add_tail(&qdata->entry, &ctlr->ms_head); in queue_mode_select()
654 if (!ctlr->ms_queued) { in queue_mode_select()
655 ctlr->ms_queued = 1; in queue_mode_select()
656 ctlr->ms_sdev = sdev; in queue_mode_select()
657 queue_work(kmpath_rdacd, &ctlr->ms_work); in queue_mode_select()
659 spin_unlock(&ctlr->ms_lock); in queue_mode_select()
719 (char *) h->ctlr->array_name, h->ctlr->index, in rdac_check_sense()
816 kref_put(&h->ctlr->kref, release_controller); in rdac_bus_attach()
828 if (h->ctlr && h->ctlr->ms_queued) in rdac_bus_detach()
832 if (h->ctlr) in rdac_bus_detach()
833 kref_put(&h->ctlr->kref, release_controller); in rdac_bus_detach()