Lines Matching refs:p
381 struct mlx4_port *p = container_of(kobj, struct mlx4_port, kobj); in mlx4_port_release() local
385 for (i = 0; (a = p->pkey_group.attrs[i]); ++i) in mlx4_port_release()
387 kfree(p->pkey_group.attrs); in mlx4_port_release()
388 for (i = 0; (a = p->gid_group.attrs[i]); ++i) in mlx4_port_release()
390 kfree(p->gid_group.attrs); in mlx4_port_release()
391 kfree(p); in mlx4_port_release()
406 struct mlx4_port *p = container_of(kobj, struct mlx4_port, kobj); in port_attr_show() local
410 return port_attr->show(p, port_attr, buf); in port_attr_show()
419 struct mlx4_port *p = container_of(kobj, struct mlx4_port, kobj); in port_attr_store() local
423 return port_attr->store(p, port_attr, buf, size); in port_attr_store()
442 static ssize_t show_port_pkey(struct mlx4_port *p, struct port_attribute *attr, in show_port_pkey() argument
449 if (p->dev->pkeys.virt2phys_pkey[p->slave][p->port_num - 1][tab_attr->index] >= in show_port_pkey()
450 (p->dev->dev->caps.pkey_table_len[p->port_num])) in show_port_pkey()
454 p->dev->pkeys.virt2phys_pkey[p->slave] in show_port_pkey()
455 [p->port_num - 1][tab_attr->index]); in show_port_pkey()
459 static ssize_t store_port_pkey(struct mlx4_port *p, struct port_attribute *attr, in store_port_pkey() argument
468 if (p->slave == mlx4_master_func_num(p->dev->dev)) in store_port_pkey()
472 idx = p->dev->dev->phys_caps.pkey_phys_table_len[p->port_num] - 1; in store_port_pkey()
474 idx >= p->dev->dev->caps.pkey_table_len[p->port_num] || in store_port_pkey()
478 p->dev->pkeys.virt2phys_pkey[p->slave][p->port_num - 1] in store_port_pkey()
480 mlx4_sync_pkey_table(p->dev->dev, p->slave, p->port_num, in store_port_pkey()
482 err = mlx4_gen_pkey_eqe(p->dev->dev, p->slave, p->port_num); in store_port_pkey()
485 " port %d, index %d\n", p->slave, p->port_num, idx); in store_port_pkey()
491 static ssize_t show_port_gid_idx(struct mlx4_port *p, in show_port_gid_idx() argument
494 return sprintf(buf, "%d\n", p->slave); in show_port_gid_idx()
546 struct mlx4_port *p = in sysfs_show_smi_enabled() local
550 if (mlx4_vf_smi_enabled(p->dev->dev, p->slave, p->port_num)) in sysfs_show_smi_enabled()
562 struct mlx4_port *p = in sysfs_show_enable_smi_admin() local
566 if (mlx4_vf_get_enable_smi_admin(p->dev->dev, p->slave, p->port_num)) in sysfs_show_enable_smi_admin()
578 struct mlx4_port *p = in sysfs_store_enable_smi_admin() local
586 if (mlx4_vf_set_enable_smi_admin(p->dev->dev, p->slave, p->port_num, enable)) in sysfs_store_enable_smi_admin()
591 static int add_vf_smi_entries(struct mlx4_port *p) in add_vf_smi_entries() argument
593 int is_eth = rdma_port_get_link_layer(&p->dev->ib_dev, p->port_num) == in add_vf_smi_entries()
598 if (is_eth || p->slave == mlx4_master_func_num(p->dev->dev)) in add_vf_smi_entries()
601 sysfs_attr_init(&p->smi_enabled.attr); in add_vf_smi_entries()
602 p->smi_enabled.show = sysfs_show_smi_enabled; in add_vf_smi_entries()
603 p->smi_enabled.store = NULL; in add_vf_smi_entries()
604 p->smi_enabled.attr.name = "smi_enabled"; in add_vf_smi_entries()
605 p->smi_enabled.attr.mode = 0444; in add_vf_smi_entries()
606 ret = sysfs_create_file(&p->kobj, &p->smi_enabled.attr); in add_vf_smi_entries()
612 sysfs_attr_init(&p->enable_smi_admin.attr); in add_vf_smi_entries()
613 p->enable_smi_admin.show = sysfs_show_enable_smi_admin; in add_vf_smi_entries()
614 p->enable_smi_admin.store = sysfs_store_enable_smi_admin; in add_vf_smi_entries()
615 p->enable_smi_admin.attr.name = "enable_smi_admin"; in add_vf_smi_entries()
616 p->enable_smi_admin.attr.mode = 0644; in add_vf_smi_entries()
617 ret = sysfs_create_file(&p->kobj, &p->enable_smi_admin.attr); in add_vf_smi_entries()
620 sysfs_remove_file(&p->kobj, &p->smi_enabled.attr); in add_vf_smi_entries()
626 static void remove_vf_smi_entries(struct mlx4_port *p) in remove_vf_smi_entries() argument
628 int is_eth = rdma_port_get_link_layer(&p->dev->ib_dev, p->port_num) == in remove_vf_smi_entries()
631 if (is_eth || p->slave == mlx4_master_func_num(p->dev->dev)) in remove_vf_smi_entries()
634 sysfs_remove_file(&p->kobj, &p->smi_enabled.attr); in remove_vf_smi_entries()
635 sysfs_remove_file(&p->kobj, &p->enable_smi_admin.attr); in remove_vf_smi_entries()
640 struct mlx4_port *p; in add_port() local
646 p = kzalloc(sizeof *p, GFP_KERNEL); in add_port()
647 if (!p) in add_port()
650 p->dev = dev; in add_port()
651 p->port_num = port_num; in add_port()
652 p->slave = slave; in add_port()
654 ret = kobject_init_and_add(&p->kobj, &port_type, in add_port()
660 p->pkey_group.name = "pkey_idx"; in add_port()
661 p->pkey_group.attrs = in add_port()
665 if (!p->pkey_group.attrs) { in add_port()
670 ret = sysfs_create_group(&p->kobj, &p->pkey_group); in add_port()
674 p->gid_group.name = "gid_idx"; in add_port()
675 p->gid_group.attrs = alloc_group_attrs(show_port_gid_idx, NULL, 1); in add_port()
676 if (!p->gid_group.attrs) { in add_port()
681 ret = sysfs_create_group(&p->kobj, &p->gid_group); in add_port()
685 ret = add_vf_smi_entries(p); in add_port()
689 list_add_tail(&p->kobj.entry, &dev->pkeys.pkey_port_list[slave]); in add_port()
693 kfree(p->gid_group.attrs[0]); in add_port()
694 kfree(p->gid_group.attrs); in add_port()
698 kfree(p->pkey_group.attrs[i]); in add_port()
699 kfree(p->pkey_group.attrs); in add_port()
703 kfree(p); in add_port()
712 struct kobject *p, *t; in register_one_pkey_tree() local
749 list_for_each_entry_safe(p, t, in register_one_pkey_tree()
752 list_del(&p->entry); in register_one_pkey_tree()
753 mport = container_of(p, struct mlx4_port, kobj); in register_one_pkey_tree()
754 sysfs_remove_group(p, &mport->pkey_group); in register_one_pkey_tree()
755 sysfs_remove_group(p, &mport->gid_group); in register_one_pkey_tree()
757 kobject_put(p); in register_one_pkey_tree()
787 struct kobject *p, *t; in unregister_pkey_tree() local
794 list_for_each_entry_safe(p, t, in unregister_pkey_tree()
797 list_del(&p->entry); in unregister_pkey_tree()
798 port = container_of(p, struct mlx4_port, kobj); in unregister_pkey_tree()
799 sysfs_remove_group(p, &port->pkey_group); in unregister_pkey_tree()
800 sysfs_remove_group(p, &port->gid_group); in unregister_pkey_tree()
802 kobject_put(p); in unregister_pkey_tree()
859 struct mlx4_ib_iov_port *p; in unregister_alias_guid_tree() local
866 p = &device->iov_ports[i]; in unregister_alias_guid_tree()
867 kobject_put(p->admin_alias_parent); in unregister_alias_guid_tree()
868 kobject_put(p->gids_parent); in unregister_alias_guid_tree()
869 kobject_put(p->pkeys_parent); in unregister_alias_guid_tree()
870 kobject_put(p->mcgs_parent); in unregister_alias_guid_tree()
871 kobject_put(p->cur_port); in unregister_alias_guid_tree()
872 kobject_put(p->cur_port); in unregister_alias_guid_tree()
873 kobject_put(p->cur_port); in unregister_alias_guid_tree()
874 kobject_put(p->cur_port); in unregister_alias_guid_tree()
875 kobject_put(p->cur_port); in unregister_alias_guid_tree()
876 kobject_put(p->dev->ports_parent); in unregister_alias_guid_tree()
877 kfree(p->dentr_ar); in unregister_alias_guid_tree()