/** * devm_register_netdev - resource managed variant of register_netdev() * @dev: managing device for this netdev - usually the parent device * @ndev: device to register * * This is a devres variant of register_netdev() for which the unregister * function will be called automatically when the managing device is * detached. Note: the net_device used must also be resource managed by * the same struct device.
*/ int devm_register_netdev(struct device *dev, struct net_device *ndev)
{ struct net_device_devres *dr; int ret;
/* struct net_device must itself be managed. For now a managed netdev * can only be allocated by devm_alloc_etherdev_mqs() so the check is * straightforward.
*/ if (WARN_ON(!devres_find(dev, devm_free_netdev,
netdev_devres_match, ndev))) return -EINVAL;
dr = devres_alloc(devm_unregister_netdev, sizeof(*dr), GFP_KERNEL); if (!dr) return -ENOMEM;
ret = register_netdev(ndev); if (ret) {
devres_free(dr); return ret;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.