I don't have a debugger setup on the system, nor do I know how to, just
using the old printf method. I did check that the handle opened eariler
is the same one being reopened down below. I did notice also that on each
z-loop the handles that opened remained the same on each loop where as the
media path type handles (which don't open in BY_DRIVER mode) changed
probably due to the reconnect() call?
On Thu, Sep 5, 2013 at 1:11 PM, Andrew Fish <[email protected]> wrote:
> Can you get a stack trace of the hang?
>
> It could be you are passing in an invalid handle, but the DXE Core should
> check for this via the EFI_HANDLE_SIGNATURE that it uses internally to make
> sure handles are valid.
>
> Thanks,
>
> Andrew Fish
>
> On Sep 5, 2013, at 12:44 PM, "David F." <[email protected]> wrote:
>
> > Hi,
> >
> > Using the SafeOpenProtocolLib in an application which basically does a
> BY_DRIVER open if it can, if not then a BY_DRIVER | EXCLUSIVE to force
> things off if it can, if that works then when it closes the protocol it
> also calls reconnect(). A few things based on that...
> >
> > 1 - Media Paths Can't be opened (BY_HANDLE they can) - no big deal for
> me.
> >
> > 2 - Opening Disk IO Protocol fails (Block IO opened prior ok)
> >
> > 3 - Having a system lock up when reconnect is called if you don't do the
> LocateHandleBuffer first. See the following proof (z can be set to
> different values but failure is always there at the reopen). The same type
> of issue occurs if you disconnect then reconnect a USB drive after the
> following if it the reopen is commented out. So what's going on here???
> >
> > // MotherBoard: Intel DH77KC
> > // BIOS: KCH7710H,86A,0108.2013.0305.1638
> > // ALSO NOTE: No ATA Pass Thru protocol seems to be available for a SATA
> HD.
> >
> > #define UEFI_BS gBS
> > void ScanDevicesProof()
> > {
> > EFI_HANDLE savehandle;
> > SAFE_OPEN_PROTOCOL_LIB_HANDLE *safeblockhandle;
> > EFI_BLOCK_IO_PROTOCOL *blkio;
> > UINTN handlecount;
> > EFI_HANDLE *handlepointer;
> > EFI_STATUS status;
> > UINT z;
> > UINT i;
> >
> > for (z=0;z<2;z++) {
> > printf("***Next Z****\n");
> > status=UEFI_BS->LocateHandleBuffer(ByProtocol,
> &gEfiBlockIoProtocolGuid, NULL, &handlecount, &handlepointer);
> > if (!EFI_ERROR(status)) {
> > for (i=0; i<handlecount; i++) {
> > printf("open %p...", handlepointer[i]);
> > if ((safeblockhandle=SafeOpenProtocol(handlepointer[i],
> &gEfiBlockIoProtocolGuid, (void**) &blkio, NULL))!=NULL) {
> > // save first handle for reopen
> > if (i==0) {
> > savehandle=handlepointer[i];
> > }
> > printf("ok closing...");
> > SafeCloseProtocol(safeblockhandle);
> > printf("ok\n");
> > }
> > else printf("fail\n");
> > }
> > UEFI_BS->FreePool(handlepointer);
> > }
> > }
> >
> > // open it and close it now
> > printf(">>>>>>> reopen (%p)...", savehandle);
> > if ((safeblockhandle=SafeOpenProtocol(savehandle,
> &gEfiBlockIoProtocolGuid, (void**) &blkio, NULL))!=NULL) {
> > printf("ok closing...");
> > SafeCloseProtocol(safeblockhandle); // <<<<<<<<<<<<<<< HANG ON
> RECONNECT
> > printf("ok\n");
> > }
> > else printf("fail\n");
> > printf("done\n");
> > }
> >
> >
> ------------------------------------------------------------------------------
> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> > Discover the easy way to master current and previous Microsoft
> technologies
> > and advance your career. Get an incredible 1,500+ hours of step-by-step
> > tutorial videos with LearnDevNow. Subscribe today and save!
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk_______________________________________________
> > edk2-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
>
>
> ------------------------------------------------------------------------------
> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> Discover the easy way to master current and previous Microsoft technologies
> and advance your career. Get an incredible 1,500+ hours of step-by-step
> tutorial videos with LearnDevNow. Subscribe today and save!
> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel