> On Jun 19, 2015, at 4:41 PM, Saiprasad Chavali <s...@marvell.com> wrote: > > Hi, > I am using the standard API to initialize the lists : > “InitializeListHead(XXX)”. I don’t see it get stuck. If I remove the > Assertion check, it goes through, no issues. The node values and the count > are fine. >
~/work/src/edk2(master)>git grep PcdMaximumLinkedListLength -- *.dec MdePkg/MdePkg.dec:1844: gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000|UINT32|0x00000003 The default for PcdMaximumLinkedListLength is a large value. Did you set it to another value in your DSC file? > What cause a memory corruption if we think that is the only case? A repeated > call to insertion/remove? Is not happening sequentially? > Well it is C code so memory corruption is easy. Have a bad pointer, or pass the same data into multiple calls. If you are casting to (LIST_ENTRY *) that may be a bug too. LIST_ENTRY ListData; LIST_ENTRY *ListHead = &ListData; LIST_ENTRY *ListEntry = &ListData; InitializeListHead (ListHead); for (i=0; i<2; i++) { InsertHeadList (ListHead, ListEntry); } Thanks, Andrew Fish > Thanks > Sai > > > > From: Andrew Fish [mailto:af...@apple.com <mailto:af...@apple.com>] > Sent: Friday, June 19, 2015 4:29 PM > To: edk2-devel@lists.sourceforge.net <mailto:edk2-devel@lists.sourceforge.net> > Subject: Re: [edk2] Assertion in Linked list - help > > > On Jun 19, 2015, at 4:18 PM, Saiprasad Chavali <s...@marvell.com > <mailto:s...@marvell.com>> wrote: > > Hi, > > I hit the Assertion (ASSERT (Count < PcdGet32 (PcdMaximumLinkedListLength))), > “Linked list is too long” inside the “InternalBaseLibIsNodeInList” of baselib > “linkedlist.c”. > > Almost all the Linked list API, calls this function. There is not one > particular API that throws this error when Invoked inside the Dxe Driver. > > If I comment this Assertion call everything works fine. The node elements in > the lists at any point of the time or no more than 3 or 4. So wondering what > could be the cause of this assertion. > > It happens most of the time, some kind of timing issue. Suspecting memory > corruption of the links, if so any reason (or) is anything wrong in the way I > initialize the linked lists? > > > How do you initialize the lists? The lists are circular so I guess you could > get stuck in an infinite loop, if you initialize them incorrectly or have > memory corruption. > > Thanks, > > Andrew Fish > > > Your help is so much appreciated. > > Thanks > Sai > > > ------------------------------------------------------------------------------ > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.sourceforge.net <mailto:edk2-devel@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/edk2-devel > <https://lists.sourceforge.net/lists/listinfo/edk2-devel>
------------------------------------------------------------------------------
_______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel