Lines Matching refs:fcf
127 static int fcoe_fcf_set_dev_loss_tmo(struct fcoe_fcf_device *fcf, in fcoe_fcf_set_dev_loss_tmo() argument
130 if ((fcf->state == FCOE_FCF_STATE_UNKNOWN) || in fcoe_fcf_set_dev_loss_tmo()
131 (fcf->state == FCOE_FCF_STATE_DISCONNECTED) || in fcoe_fcf_set_dev_loss_tmo()
132 (fcf->state == FCOE_FCF_STATE_DELETED)) in fcoe_fcf_set_dev_loss_tmo()
140 fcoe_fcf_dev_loss_tmo(fcf) = val; in fcoe_fcf_set_dev_loss_tmo()
165 struct fcoe_fcf_device *fcf = dev_to_fcf(dev); \
166 struct fcoe_ctlr_device *ctlr = fcoe_fcf_dev_to_ctlr_dev(fcf); \
168 ctlr->f->get_fcoe_fcf_##field(fcf); \
170 cast fcoe_fcf_##field(fcf)); \
187 struct fcoe_fcf_device *fcf = dev_to_fcf(dev); \
188 return snprintf(buf, sz, format_string, cast fcoe_fcf_##field(fcf)); \
203 static FCOE_DEVICE_ATTR(fcf, field, S_IRUGO, \
208 static FCOE_DEVICE_ATTR(fcf, field, S_IRUGO, \
218 static FCOE_DEVICE_ATTR(fcf, field, S_IRUGO, \
260 struct fcoe_fcf_device *fcf = dev_to_fcf(dev); in fcoe_enum_name_search() local
262 name = get_fcoe_fcf_state_name(fcf->state); in fcoe_enum_name_search()
267 static FCOE_DEVICE_ATTR(fcf, state, S_IRUGO, show_fcf_state, NULL);
394 struct fcoe_fcf_device *fcf; in store_private_fcoe_ctlr_fcf_dev_loss_tmo() local
404 list_for_each_entry(fcf, &ctlr->fcfs, peers) in store_private_fcoe_ctlr_fcf_dev_loss_tmo()
405 fcoe_fcf_set_dev_loss_tmo(fcf, val); in store_private_fcoe_ctlr_fcf_dev_loss_tmo()
437 struct fcoe_fcf_device *fcf = dev_to_fcf(dev); in store_fcoe_fcf_dev_loss_tmo() local
445 rc = fcoe_fcf_set_dev_loss_tmo(fcf, val); in store_fcoe_fcf_dev_loss_tmo()
450 static FCOE_DEVICE_ATTR(fcf, dev_loss_tmo, S_IRUGO | S_IWUSR,
540 struct fcoe_fcf_device *fcf = dev_to_fcf(dev); in fcoe_fcf_device_release() local
541 kfree(fcf); in fcoe_fcf_device_release()
756 struct fcoe_fcf_device *fcf, *next; in fcoe_ctlr_device_delete() local
759 list_for_each_entry_safe(fcf, next, in fcoe_ctlr_device_delete()
761 list_del(&fcf->peers); in fcoe_ctlr_device_delete()
762 fcf->state = FCOE_FCF_STATE_DELETED; in fcoe_ctlr_device_delete()
763 fcoe_ctlr_device_queue_work(ctlr, &fcf->delete_work); in fcoe_ctlr_device_delete()
787 struct fcoe_fcf_device *fcf = in fcoe_fcf_device_final_delete() local
789 struct fcoe_ctlr_device *ctlr = fcoe_fcf_dev_to_ctlr_dev(fcf); in fcoe_fcf_device_final_delete()
796 if (!cancel_delayed_work(&fcf->dev_loss_work)) in fcoe_fcf_device_final_delete()
799 device_unregister(&fcf->dev); in fcoe_fcf_device_final_delete()
811 struct fcoe_fcf_device *fcf = in fip_timeout_deleted_fcf() local
813 struct fcoe_ctlr_device *ctlr = fcoe_fcf_dev_to_ctlr_dev(fcf); in fip_timeout_deleted_fcf()
823 if (fcf->state != FCOE_FCF_STATE_DISCONNECTED) in fip_timeout_deleted_fcf()
826 dev_printk(KERN_ERR, &fcf->dev, in fip_timeout_deleted_fcf()
829 list_del(&fcf->peers); in fip_timeout_deleted_fcf()
830 fcf->state = FCOE_FCF_STATE_DELETED; in fip_timeout_deleted_fcf()
831 fcoe_ctlr_device_queue_work(ctlr, &fcf->delete_work); in fip_timeout_deleted_fcf()
846 void fcoe_fcf_device_delete(struct fcoe_fcf_device *fcf) in fcoe_fcf_device_delete() argument
848 struct fcoe_ctlr_device *ctlr = fcoe_fcf_dev_to_ctlr_dev(fcf); in fcoe_fcf_device_delete()
849 int timeout = fcf->dev_loss_tmo; in fcoe_fcf_device_delete()
851 if (fcf->state != FCOE_FCF_STATE_CONNECTED) in fcoe_fcf_device_delete()
854 fcf->state = FCOE_FCF_STATE_DISCONNECTED; in fcoe_fcf_device_delete()
861 fcf->priv = NULL; in fcoe_fcf_device_delete()
863 fcoe_ctlr_device_queue_devloss_work(ctlr, &fcf->dev_loss_work, in fcoe_fcf_device_delete()
878 struct fcoe_fcf_device *fcf; in fcoe_fcf_device_add() local
881 list_for_each_entry(fcf, &ctlr->fcfs, peers) { in fcoe_fcf_device_add()
882 if (fcoe_fcf_device_match(new_fcf, fcf)) { in fcoe_fcf_device_add()
883 if (fcf->state == FCOE_FCF_STATE_CONNECTED) in fcoe_fcf_device_add()
884 return fcf; in fcoe_fcf_device_add()
886 fcf->state = FCOE_FCF_STATE_CONNECTED; in fcoe_fcf_device_add()
888 if (!cancel_delayed_work(&fcf->dev_loss_work)) in fcoe_fcf_device_add()
891 return fcf; in fcoe_fcf_device_add()
895 fcf = kzalloc(sizeof(struct fcoe_fcf_device), GFP_ATOMIC); in fcoe_fcf_device_add()
896 if (unlikely(!fcf)) in fcoe_fcf_device_add()
899 INIT_WORK(&fcf->delete_work, fcoe_fcf_device_final_delete); in fcoe_fcf_device_add()
900 INIT_DELAYED_WORK(&fcf->dev_loss_work, fip_timeout_deleted_fcf); in fcoe_fcf_device_add()
902 fcf->dev.parent = &ctlr->dev; in fcoe_fcf_device_add()
903 fcf->dev.bus = &fcoe_bus_type; in fcoe_fcf_device_add()
904 fcf->dev.type = &fcoe_fcf_device_type; in fcoe_fcf_device_add()
905 fcf->id = atomic_inc_return(&fcf_num) - 1; in fcoe_fcf_device_add()
906 fcf->state = FCOE_FCF_STATE_UNKNOWN; in fcoe_fcf_device_add()
908 fcf->dev_loss_tmo = ctlr->fcf_dev_loss_tmo; in fcoe_fcf_device_add()
910 dev_set_name(&fcf->dev, "fcf_%d", fcf->id); in fcoe_fcf_device_add()
912 fcf->fabric_name = new_fcf->fabric_name; in fcoe_fcf_device_add()
913 fcf->switch_name = new_fcf->switch_name; in fcoe_fcf_device_add()
914 fcf->fc_map = new_fcf->fc_map; in fcoe_fcf_device_add()
915 fcf->vfid = new_fcf->vfid; in fcoe_fcf_device_add()
916 memcpy(fcf->mac, new_fcf->mac, ETH_ALEN); in fcoe_fcf_device_add()
917 fcf->priority = new_fcf->priority; in fcoe_fcf_device_add()
918 fcf->fka_period = new_fcf->fka_period; in fcoe_fcf_device_add()
919 fcf->selected = new_fcf->selected; in fcoe_fcf_device_add()
921 error = device_register(&fcf->dev); in fcoe_fcf_device_add()
925 fcf->state = FCOE_FCF_STATE_CONNECTED; in fcoe_fcf_device_add()
926 list_add_tail(&fcf->peers, &ctlr->fcfs); in fcoe_fcf_device_add()
928 return fcf; in fcoe_fcf_device_add()
931 kfree(fcf); in fcoe_fcf_device_add()