Passed a format string, eg. "ltd", it will allocate a network device and space for the name. NULL is returned if no memory is available. If the allocation succeeds then the name is assigned and the device pointer returned. NULL is returned if the name allocation failed. The cause of an error is returned as a negative errno code in the variable err points to.
The caller must hold the dev_base or RTNL locks when doing this in order to avoid duplicate name allocations.