| // SPDX-License-Identifier: GPL-2.0 |
| /* Copyright (c) 2019 Mellanox Technologies. All rights reserved */ |
| #include <linux/debugfs.h> |
| #include <linux/kernel.h> |
| static struct dentry *nsim_sdev_ddir; |
| struct netdevsim_shared_dev *nsim_sdev_get(struct netdevsim *joinns) |
| struct netdevsim_shared_dev *sdev; |
| if (WARN_ON(!joinns->sdev)) |
| sdev = kzalloc(sizeof(*sdev), GFP_KERNEL); |
| sdev->switch_id = nsim_sdev_id++; |
| sprintf(sdev_ddir_name, "%u", sdev->switch_id); |
| sdev->ddir = debugfs_create_dir(sdev_ddir_name, nsim_sdev_ddir); |
| if (IS_ERR_OR_NULL(sdev->ddir)) { |
| err = PTR_ERR_OR_ZERO(sdev->ddir) ?: -EINVAL; |
| void nsim_sdev_put(struct netdevsim_shared_dev *sdev) |
| debugfs_remove_recursive(sdev->ddir); |
| nsim_sdev_ddir = debugfs_create_dir(DRV_NAME "_sdev", NULL); |
| if (IS_ERR_OR_NULL(nsim_sdev_ddir)) |
| void nsim_sdev_exit(void) |
| debugfs_remove_recursive(nsim_sdev_ddir); |