Index: Components/PN_Stack/PN_Controller/Sources/Pnm_DataProvider.c =================================================================== --- Components/PN_Stack/PN_Controller/Sources/Pnm_DataProvider.c (revision 94248) +++ Components/PN_Stack/PN_Controller/Sources/Pnm_DataProvider.c (working copy) @@ -358,6 +358,7 @@ ptSubmodule->usARIndex = ptAR->usIndex; ptSubmodule->usPeerSubmoduleIdx = 0xFFFF; +#if 0 if (ptIt) { int iCompare = Pnm_Dp_SubmoduleCompare(ptSubmodule, ptIt); @@ -377,6 +378,7 @@ while((ptItNext = Pnm_Dp_GetSubmodule(ptRsc, ptIt->usARNextSubmoduleIdx))) { + iCompare = Pnm_Dp_SubmoduleCompare(ptSubmodule, ptItNext); if(iCompare < 0) @@ -391,6 +393,21 @@ ptIt->usARNextSubmoduleIdx = ptSubmodule->usIndex; } } +#else + if (ptIt) + { + PNM_SUBMODULE_T *ptItNext = NULL; + /* Don't sort submodule list. Append newly configured submodule at the end of the list + * get last configured submodule using the following loop */ + while((ptItNext = Pnm_Dp_GetSubmodule(ptRsc, ptIt->usARNextSubmoduleIdx))) + { + ptIt = ptItNext; + } + + ptSubmodule->usARNextSubmoduleIdx = ptIt->usARNextSubmoduleIdx; + ptIt->usARNextSubmoduleIdx = ptSubmodule->usIndex; + } +#endif else { ptAR->usFirstSubmodule = ptSubmodule->usIndex;