H A D | scsi_transport_fc.c | 388 struct fc_host_attrs *fc_host = shost_to_fc_host(shost); fc_host_setup() local 395 fc_host->node_name = -1; fc_host_setup() 396 fc_host->port_name = -1; fc_host_setup() 397 fc_host->permanent_port_name = -1; fc_host_setup() 398 fc_host->supported_classes = FC_COS_UNSPECIFIED; fc_host_setup() 399 memset(fc_host->supported_fc4s, 0, fc_host_setup() 400 sizeof(fc_host->supported_fc4s)); fc_host_setup() 401 fc_host->supported_speeds = FC_PORTSPEED_UNKNOWN; fc_host_setup() 402 fc_host->maxframe_size = -1; fc_host_setup() 403 fc_host->max_npiv_vports = 0; fc_host_setup() 404 memset(fc_host->serial_number, 0, fc_host_setup() 405 sizeof(fc_host->serial_number)); fc_host_setup() 406 memset(fc_host->manufacturer, 0, fc_host_setup() 407 sizeof(fc_host->manufacturer)); fc_host_setup() 408 memset(fc_host->model, 0, fc_host_setup() 409 sizeof(fc_host->model)); fc_host_setup() 410 memset(fc_host->model_description, 0, fc_host_setup() 411 sizeof(fc_host->model_description)); fc_host_setup() 412 memset(fc_host->hardware_version, 0, fc_host_setup() 413 sizeof(fc_host->hardware_version)); fc_host_setup() 414 memset(fc_host->driver_version, 0, fc_host_setup() 415 sizeof(fc_host->driver_version)); fc_host_setup() 416 memset(fc_host->firmware_version, 0, fc_host_setup() 417 sizeof(fc_host->firmware_version)); fc_host_setup() 418 memset(fc_host->optionrom_version, 0, fc_host_setup() 419 sizeof(fc_host->optionrom_version)); fc_host_setup() 421 fc_host->port_id = -1; fc_host_setup() 422 fc_host->port_type = FC_PORTTYPE_UNKNOWN; fc_host_setup() 423 fc_host->port_state = FC_PORTSTATE_UNKNOWN; fc_host_setup() 424 memset(fc_host->active_fc4s, 0, fc_host_setup() 425 sizeof(fc_host->active_fc4s)); fc_host_setup() 426 fc_host->speed = FC_PORTSPEED_UNKNOWN; fc_host_setup() 427 fc_host->fabric_name = -1; fc_host_setup() 428 memset(fc_host->symbolic_name, 0, sizeof(fc_host->symbolic_name)); fc_host_setup() 429 memset(fc_host->system_hostname, 0, sizeof(fc_host->system_hostname)); fc_host_setup() 431 fc_host->tgtid_bind_type = FC_TGTID_BIND_BY_WWPN; fc_host_setup() 433 INIT_LIST_HEAD(&fc_host->rports); fc_host_setup() 434 INIT_LIST_HEAD(&fc_host->rport_bindings); fc_host_setup() 435 INIT_LIST_HEAD(&fc_host->vports); fc_host_setup() 436 fc_host->next_rport_number = 0; fc_host_setup() 437 fc_host->next_target_id = 0; fc_host_setup() 438 fc_host->next_vport_number = 0; fc_host_setup() 439 fc_host->npiv_vports_inuse = 0; fc_host_setup() 441 snprintf(fc_host->work_q_name, sizeof(fc_host->work_q_name), fc_host_setup() 443 fc_host->work_q = alloc_workqueue("%s", 0, 0, fc_host->work_q_name); fc_host_setup() 444 if (!fc_host->work_q) fc_host_setup() 447 fc_host->dev_loss_tmo = fc_dev_loss_tmo; fc_host_setup() 448 snprintf(fc_host->devloss_work_q_name, fc_host_setup() 449 sizeof(fc_host->devloss_work_q_name), fc_host_setup() 451 fc_host->devloss_work_q = alloc_workqueue("%s", 0, 0, fc_host_setup() 452 fc_host->devloss_work_q_name); fc_host_setup() 453 if (!fc_host->devloss_work_q) { fc_host_setup() 454 destroy_workqueue(fc_host->work_q); fc_host_setup() 455 fc_host->work_q = NULL; fc_host_setup() 459 fc_bsg_hostadd(shost, fc_host); fc_host_setup() 469 struct fc_host_attrs *fc_host = shost_to_fc_host(shost); fc_host_remove() local 471 fc_bsg_remove(fc_host->rqst_q); fc_host_remove() 476 "fc_host", 524 * fc_host_post_event - called to post an even on an fc_host. 527 * @event_code: fc_host event being posted 592 * fc_host_post_vendor_event - called to post a vendor unique event on an fc_host 1665 struct fc_host_attrs *fc_host = shost_to_fc_host(shost); store_fc_private_host_dev_loss_tmo() local 1676 list_for_each_entry(rport, &fc_host->rports, peers) store_fc_private_host_dev_loss_tmo() 1904 struct fc_host_attrs *fc_host = shost_to_fc_host(shost); store_fc_host_vport_delete() local 1930 list_for_each_entry(vport, &fc_host->vports, peers) { store_fc_host_vport_delete() 2336 * fc_queue_work - Queue work to the fc_host workqueue. 2337 * @shost: Pointer to Scsi_Host bound to fc_host. 2361 * fc_flush_work - Flush a fc_host's workqueue. 2362 * @shost: Pointer to Scsi_Host bound to fc_host. 2379 * fc_queue_devloss_work - Schedule work for the fc_host devloss workqueue. 2380 * @shost: Pointer to Scsi_Host bound to fc_host. 2404 * fc_flush_devloss - Flush a fc_host's devloss workqueue. 2405 * @shost: Pointer to Scsi_Host bound to fc_host. 2443 struct fc_host_attrs *fc_host = shost_to_fc_host(shost); fc_remove_host() local 2449 list_for_each_entry_safe(vport, next_vport, &fc_host->vports, peers) fc_remove_host() 2454 &fc_host->rports, peers) { fc_remove_host() 2461 &fc_host->rport_bindings, peers) { fc_remove_host() 2473 if (fc_host->work_q) { fc_remove_host() 2474 work_q = fc_host->work_q; fc_remove_host() 2475 fc_host->work_q = NULL; fc_remove_host() 2480 if (fc_host->devloss_work_q) { fc_remove_host() 2481 work_q = fc_host->devloss_work_q; fc_remove_host() 2482 fc_host->devloss_work_q = NULL; fc_remove_host() 2589 put_device(&shost->shost_gendev); /* for fc_host->rport list */ fc_rport_final_delete() 2611 struct fc_host_attrs *fc_host = shost_to_fc_host(shost); fc_rport_create() local 2628 rport->dev_loss_tmo = fc_host->dev_loss_tmo; fc_rport_create() 2647 rport->number = fc_host->next_rport_number++; fc_rport_create() 2649 rport->scsi_target_id = fc_host->next_target_id++; fc_rport_create() 2652 list_add_tail(&rport->peers, &fc_host->rports); fc_rport_create() 2653 get_device(&shost->shost_gendev); /* for fc_host->rport list */ fc_rport_create() 2688 put_device(&shost->shost_gendev); /* for fc_host->rport list */ fc_rport_create() 2738 struct fc_host_attrs *fc_host = shost_to_fc_host(shost); fc_remote_port_add() local 2753 list_for_each_entry(rport, &fc_host->rports, peers) { fc_remote_port_add() 2758 switch (fc_host->tgtid_bind_type) { fc_remote_port_add() 2854 if (fc_host->tgtid_bind_type != FC_TGTID_BIND_NONE) { fc_remote_port_add() 2858 list_for_each_entry(rport, &fc_host->rport_bindings, fc_remote_port_add() 2863 switch (fc_host->tgtid_bind_type) { fc_remote_port_add() 2881 list_move_tail(&rport->peers, &fc_host->rports); fc_remote_port_add() 2931 * ports displayed by the fc_host. We do this under 2 conditions: 2982 * No need to flush the fc_host work_q's, as all adds are synchronous. fc_remote_port_delete() 3052 struct fc_host_attrs *fc_host = shost_to_fc_host(shost); fc_remote_port_rolechg() local 3059 rport->scsi_target_id = fc_host->next_target_id++; fc_remote_port_rolechg() 3120 struct fc_host_attrs *fc_host = shost_to_fc_host(shost); fc_timeout_deleted_rport() local 3155 if ((fc_host->tgtid_bind_type == FC_TGTID_BIND_NONE) || fc_timeout_deleted_rport() 3172 list_move_tail(&rport->peers, &fc_host->rport_bindings); fc_timeout_deleted_rport() 3202 switch (fc_host->tgtid_bind_type) { fc_timeout_deleted_rport() 3343 struct fc_host_attrs *fc_host = shost_to_fc_host(shost); fc_vport_setup() local 3378 if (fc_host->npiv_vports_inuse >= fc_host->max_npiv_vports) { fc_vport_setup() 3383 fc_host->npiv_vports_inuse++; fc_vport_setup() 3384 vport->number = fc_host->next_vport_number++; fc_vport_setup() 3385 list_add_tail(&vport->peers, &fc_host->vports); fc_vport_setup() 3386 get_device(&shost->shost_gendev); /* for fc_host->vport list */ fc_vport_setup() 3444 put_device(&shost->shost_gendev); /* for fc_host->vport list */ fc_vport_setup() 3445 fc_host->npiv_vports_inuse--; fc_vport_setup() 3490 struct fc_host_attrs *fc_host = shost_to_fc_host(shost); fc_vport_terminate() local 3506 fc_host->npiv_vports_inuse--; fc_vport_terminate() 3507 put_device(&shost->shost_gendev); /* for fc_host->vport list */ fc_vport_terminate() 4033 * @shost: shost for fc_host 4034 * @fc_host: fc_host adding the structures to 4037 fc_bsg_hostadd(struct Scsi_Host *shost, struct fc_host_attrs *fc_host) fc_bsg_hostadd() argument 4045 fc_host->rqst_q = NULL; fc_bsg_hostadd() 4051 "fc_host%d", shost->host_no); fc_bsg_hostadd() 4055 printk(KERN_ERR "fc_host%d: bsg interface failed to " fc_bsg_hostadd() 4069 printk(KERN_ERR "fc_host%d: bsg interface failed to " fc_bsg_hostadd() 4076 fc_host->rqst_q = q; fc_bsg_hostadd()
|