* @server_down: IOPART is down.
* @server_change_state: Processing SERVER_CHANGESTATE msg.
* @going_away: device is being torn down.
- * @struct *eth_debugfs_dir:
* @interrupts_rcvd:
* @interrupts_notme:
* @interrupts_disabled:
bool server_down;
bool server_change_state;
bool going_away;
- struct dentry *eth_debugfs_dir;
u64 interrupts_rcvd;
u64 interrupts_notme;
u64 interrupts_disabled;
goto cleanup_napi_add;
}
- /* create debug/sysfs directories */
- devdata->eth_debugfs_dir = debugfs_create_dir(netdev->name,
- visornic_debugfs_dir);
- if (!devdata->eth_debugfs_dir) {
- dev_err(&dev->device,
- "%s debugfs_create_dir %s failed\n",
- __func__, netdev->name);
- err = -ENOMEM;
- goto cleanup_register_netdev;
- }
-
dev_info(&dev->device, "%s success netdev=%s\n",
__func__, netdev->name);
return 0;
-cleanup_register_netdev:
- unregister_netdev(netdev);
-
cleanup_napi_add:
visorbus_disable_channel_interrupts(dev);
netif_napi_del(&devdata->napi);
/* going_away prevents new items being added to the workqueues */
cancel_work_sync(&devdata->timeout_reset);
- debugfs_remove_recursive(devdata->eth_debugfs_dir);
/* this will call visornic_close() */
unregister_netdev(netdev);