diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/hwpf/hwp/establish_system_smp/establish_system_smp.C | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/src/usr/hwpf/hwp/establish_system_smp/establish_system_smp.C b/src/usr/hwpf/hwp/establish_system_smp/establish_system_smp.C index ad40ed21a..de014e2a3 100644 --- a/src/usr/hwpf/hwp/establish_system_smp/establish_system_smp.C +++ b/src/usr/hwpf/hwp/establish_system_smp/establish_system_smp.C @@ -48,6 +48,7 @@ #include <hwpisteperror.H> #include <istep_mbox_msgs.H> +#include <vfs/vfs.H> // targeting support #include <targeting/common/commontargeting.H> @@ -196,8 +197,36 @@ void host_sys_fab_iovalid_processing( msg_t* io_pMsg ) TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "$TODO RTC:63128 - hb instances exchange and agree on cfg"); - // after agreement, open abuses as required - l_errl = smp_unfencing_inter_enclosure_abus_links(); + bool l_libloaded = false; + if ( !VFS::module_is_loaded( "libedi_ei_initialization.so" ) ) + { + l_errl = VFS::module_load( "libedi_ei_initialization.so" ); + if ( l_errl ) + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, ERR_MRK + "Could not load libedi_ei_initialization.so"); + } + else + { + l_libloaded = true; + } + } + + if(!l_errl) + { + // after agreement, open abuses as required + l_errl = smp_unfencing_inter_enclosure_abus_links(); + } + + if(l_libloaded) // loaded locally + { + l_errl = VFS::module_unload( "libedi_ei_initialization.so" ); + if(l_errl) + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, ERR_MRK + "Could not un-load libedi_ei_initialization.so"); + } + } // release the storage from the message free(io_pMsg->extra_data); |