Lines Matching refs:ctlr

186 	struct rdac_controller	*ctlr;  member
264 static unsigned int rdac_failover_get(struct rdac_controller *ctlr, in rdac_failover_get() argument
273 if (ctlr->use_ms10) { in rdac_failover_get()
277 rdac_pg = &ctlr->mode_select.expanded; in rdac_failover_get()
289 rdac_pg = &ctlr->mode_select.legacy; in rdac_failover_get()
305 if (ctlr->use_ms10) { in rdac_failover_get()
319 struct rdac_controller *ctlr; in release_controller() local
320 ctlr = container_of(kref, struct rdac_controller, kref); in release_controller()
322 list_del(&ctlr->node); in release_controller()
323 kfree(ctlr); in release_controller()
329 struct rdac_controller *ctlr, *tmp; in get_controller() local
339 ctlr = kmalloc(sizeof(*ctlr), GFP_ATOMIC); in get_controller()
340 if (!ctlr) in get_controller()
344 memcpy(ctlr->array_id, array_id, UNIQUE_ID_LEN); in get_controller()
345 ctlr->index = index; in get_controller()
346 ctlr->host = sdev->host; in get_controller()
347 memcpy(ctlr->array_name, array_name, ARRAY_LABEL_LEN); in get_controller()
349 kref_init(&ctlr->kref); in get_controller()
350 ctlr->use_ms10 = -1; in get_controller()
351 ctlr->ms_queued = 0; in get_controller()
352 ctlr->ms_sdev = NULL; in get_controller()
353 spin_lock_init(&ctlr->ms_lock); in get_controller()
354 INIT_WORK(&ctlr->ms_work, send_mode_select); in get_controller()
355 INIT_LIST_HEAD(&ctlr->ms_head); in get_controller()
356 list_add(&ctlr->node, &ctlr_list); in get_controller()
357 INIT_LIST_HEAD(&ctlr->dh_list); in get_controller()
359 return ctlr; in get_controller()
425 list_for_each_entry_rcu(tmp, &h->ctlr->dh_list, node) { in check_ownership()
452 h->ctlr = get_controller(index, array_name, array_id, sdev); in initialize_controller()
453 if (!h->ctlr) in initialize_controller()
457 list_add_rcu(&h->node, &h->ctlr->dh_list); in initialize_controller()
477 h->ctlr->use_ms10 = 1; in set_mode_select()
479 h->ctlr->use_ms10 = 0; in set_mode_select()
520 (char *) h->ctlr->array_name, h->ctlr->index, in mode_select_handle_sense()
529 struct rdac_controller *ctlr = in send_mode_select() local
531 struct scsi_device *sdev = ctlr->ms_sdev; in send_mode_select()
542 spin_lock(&ctlr->ms_lock); in send_mode_select()
543 list_splice_init(&ctlr->ms_head, &list); in send_mode_select()
544 ctlr->ms_queued = 0; in send_mode_select()
545 ctlr->ms_sdev = NULL; in send_mode_select()
546 spin_unlock(&ctlr->ms_lock); in send_mode_select()
551 data_size = rdac_failover_get(ctlr, &list, cdb); in send_mode_select()
555 (char *) h->ctlr->array_name, h->ctlr->index, in send_mode_select()
558 if (scsi_execute(sdev, cdb, DMA_TO_DEVICE, &h->ctlr->mode_select, in send_mode_select()
571 (char *) h->ctlr->array_name, h->ctlr->index); in send_mode_select()
589 struct rdac_controller *ctlr; in queue_mode_select() local
599 ctlr = qdata->h->ctlr; in queue_mode_select()
600 spin_lock(&ctlr->ms_lock); in queue_mode_select()
601 list_add_tail(&qdata->entry, &ctlr->ms_head); in queue_mode_select()
602 if (!ctlr->ms_queued) { in queue_mode_select()
603 ctlr->ms_queued = 1; in queue_mode_select()
604 ctlr->ms_sdev = sdev; in queue_mode_select()
605 queue_work(kmpath_rdacd, &ctlr->ms_work); in queue_mode_select()
607 spin_unlock(&ctlr->ms_lock); in queue_mode_select()
666 (char *) h->ctlr->array_name, h->ctlr->index, in rdac_check_sense()
763 kref_put(&h->ctlr->kref, release_controller); in rdac_bus_attach()
775 if (h->ctlr && h->ctlr->ms_queued) in rdac_bus_detach()
779 if (h->ctlr) { in rdac_bus_detach()
781 kref_put(&h->ctlr->kref, release_controller); in rdac_bus_detach()