MFC tty fixes, r259549 and r259663
Keep tty_makedev as a function to preserve the KBI on 10-stable
(it is a macro in CURRENT). The changes for this are direct
commits to 10-stable.
r259549 (glebius):
- Rename tty_makedev() into tty_makedevf() and make it capable to fail and return error.
- Use make_dev_p() in tty_makedevf() instead of make_dev_cred().
- Always pass MAKEDEV_CHECKNAME flag.
- Optionally pass MAKEDEV_REF flag.
- Provide macro for compatibility with old API.
This fixes races with simultaneous creation and desctruction of ttys, and makes it possible to call tty_makedevf() from device cloners.
A race in tty_watermarks() still exist, since the latter drops lock for M_WAITOK allocation. This will be addressed in separate commit.
r259663 (glebius):
Move list of ttys handling from the allocating procedures, to the device creation stage. A device creation can fail, and in that case an entry already on the list will be freed.
KBI issue pointed out by: kib
Reviewed by: kib (KBI addition)
Approved by: re (kib)