Lines Matching refs:ctlr
185 struct rdac_controller *ctlr; member
307 if (h->ctlr->use_ms10) { in rdac_failover_get()
311 rdac_pg = &h->ctlr->mode_select.expanded; in rdac_failover_get()
323 rdac_pg = &h->ctlr->mode_select.legacy; in rdac_failover_get()
339 rq = get_rdac_req(sdev, &h->ctlr->mode_select, data_size, WRITE); in rdac_failover_get()
344 if (h->ctlr->use_ms10) { in rdac_failover_get()
363 struct rdac_controller *ctlr; in release_controller() local
364 ctlr = container_of(kref, struct rdac_controller, kref); in release_controller()
366 list_del(&ctlr->node); in release_controller()
367 kfree(ctlr); in release_controller()
373 struct rdac_controller *ctlr, *tmp; in get_controller() local
383 ctlr = kmalloc(sizeof(*ctlr), GFP_ATOMIC); in get_controller()
384 if (!ctlr) in get_controller()
388 memcpy(ctlr->array_id, array_id, UNIQUE_ID_LEN); in get_controller()
389 ctlr->index = index; in get_controller()
390 ctlr->host = sdev->host; in get_controller()
391 memcpy(ctlr->array_name, array_name, ARRAY_LABEL_LEN); in get_controller()
393 kref_init(&ctlr->kref); in get_controller()
394 ctlr->use_ms10 = -1; in get_controller()
395 ctlr->ms_queued = 0; in get_controller()
396 ctlr->ms_sdev = NULL; in get_controller()
397 spin_lock_init(&ctlr->ms_lock); in get_controller()
398 INIT_WORK(&ctlr->ms_work, send_mode_select); in get_controller()
399 INIT_LIST_HEAD(&ctlr->ms_head); in get_controller()
400 list_add(&ctlr->node, &ctlr_list); in get_controller()
402 return ctlr; in get_controller()
514 h->ctlr = get_controller(index, array_name, array_id, sdev); in initialize_controller()
515 if (!h->ctlr) in initialize_controller()
535 h->ctlr->use_ms10 = 1; in set_mode_select()
537 h->ctlr->use_ms10 = 0; in set_mode_select()
579 (char *) h->ctlr->array_name, h->ctlr->index, in mode_select_handle_sense()
588 struct rdac_controller *ctlr = in send_mode_select() local
591 struct scsi_device *sdev = ctlr->ms_sdev; in send_mode_select()
598 spin_lock(&ctlr->ms_lock); in send_mode_select()
599 list_splice_init(&ctlr->ms_head, &list); in send_mode_select()
600 ctlr->ms_queued = 0; in send_mode_select()
601 ctlr->ms_sdev = NULL; in send_mode_select()
602 spin_unlock(&ctlr->ms_lock); in send_mode_select()
612 (char *) h->ctlr->array_name, h->ctlr->index, in send_mode_select()
628 (char *) h->ctlr->array_name, h->ctlr->index); in send_mode_select()
647 struct rdac_controller *ctlr; in queue_mode_select() local
657 ctlr = qdata->h->ctlr; in queue_mode_select()
658 spin_lock(&ctlr->ms_lock); in queue_mode_select()
659 list_add_tail(&qdata->entry, &ctlr->ms_head); in queue_mode_select()
660 if (!ctlr->ms_queued) { in queue_mode_select()
661 ctlr->ms_queued = 1; in queue_mode_select()
662 ctlr->ms_sdev = sdev; in queue_mode_select()
663 queue_work(kmpath_rdacd, &ctlr->ms_work); in queue_mode_select()
665 spin_unlock(&ctlr->ms_lock); in queue_mode_select()
725 (char *) h->ctlr->array_name, h->ctlr->index, in rdac_check_sense()
870 kref_put(&h->ctlr->kref, release_controller); in rdac_bus_attach()
882 if (h->ctlr && h->ctlr->ms_queued) in rdac_bus_detach()
886 if (h->ctlr) in rdac_bus_detach()
887 kref_put(&h->ctlr->kref, release_controller); in rdac_bus_detach()