mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
rtld-elf: Avoid unnecessary lock_restart_for_upgrade() calls
In order to atomically upgrade the rtld bind lock, load_filtees() may trigger a longjmp back to _rtld_bind() so that the binding can be done with the write lock held. However, the write lock is only needed when filtee objects haven't already been loaded, so move the lock_restart_for_upgrade() call to avoid unnecessary lock upgrades when a filtee is defined. Reviewed by: kib Tested by: brooks MFC after: 1 week Sponsored by: Innovate UK (cherry picked from commit e7951d0b04e6464b37264b8166b1e9ce368a9f1d)
This commit is contained in:
parent
d146da5d08
commit
323226829a
1 changed files with 1 additions and 1 deletions
|
|
@ -2573,8 +2573,8 @@ static void
|
|||
load_filtees(Obj_Entry *obj, int flags, RtldLockState *lockstate)
|
||||
{
|
||||
|
||||
lock_restart_for_upgrade(lockstate);
|
||||
if (!obj->filtees_loaded) {
|
||||
lock_restart_for_upgrade(lockstate);
|
||||
load_filtee1(obj, obj->needed_filtees, flags, lockstate);
|
||||
load_filtee1(obj, obj->needed_aux_filtees, flags, lockstate);
|
||||
obj->filtees_loaded = true;
|
||||
|
|
|
|||
Loading…
Reference in a new issue