HomeFreeBSD

Rather than using IFNET_RLOCK() when iterating over (and modifying) the

Description

Rather than using IFNET_RLOCK() when iterating over (and modifying) the
ifnet list during if_ef load, directly acquire the ifnet_sxlock
exclusively. That way when if_alloc() recurses the lock, it's a write
recursion rather than a read->write recursion.

This code structure is arguably a bug, so add a comment indicating that
this is the case. Post-8.0, we should fix this, but this commit
resolves panic-on-load for if_ef.

Discussed with: bz, julian
Reported by: phk
MFC after: 3 days

Details

Provenance
rwatsonAuthored on Aug 23 2009, 9:00 PM
Parents
rG77dfcdc44559: Rework global locks for interface list and index management, correcting
Branches
Unknown
Tags
Unknown

Event Timeline