Page MenuHomeFreeBSD

ifnet(9): split ifc_alloc_unit() (should make code a bit cleaner).
ClosedPublic

Authored by avos on Sep 30 2017, 9:27 PM.
Tags
None
Referenced Files
F166649240: D12551.id34037.diff
Sat, Aug 15, 5:09 AM
F166649238: D12551.id33595.diff
Sat, Aug 15, 5:08 AM
F166649236: D12551.id.diff
Sat, Aug 15, 5:08 AM
F166649210: D12551.diff
Sat, Aug 15, 5:08 AM
Unknown Object (File)
Thu, Aug 13, 6:59 AM
Unknown Object (File)
Thu, Aug 13, 6:59 AM
Unknown Object (File)
Thu, Aug 13, 6:59 AM
Unknown Object (File)
Thu, Aug 13, 6:59 AM
Subscribers

Details

Summary

Allocate smallest unit number from pool from ifc_alloc_unit_next() and exact unit number (if available) from ifc_alloc_unit_specific().

While here, fix potential endless loop (*unit < 0 -> alloc_unr() succeeds but ifunit() fails -> (*unit)++ and then alloc_unr_specific() fails ->(*unit) is overridden with return result (-1) and then used instead of previous unit number).

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Yes (but without reassigning *unit - it will not change after alloc_unr_specific() anyway).

Can you please grab the PR? :)

This revision was automatically updated to reflect the committed changes.