<HTML xmlns:o><HEAD><TITLE>Samsung Enterprise Portal mySingle</TITLE>
<META content=IE=5 http-equiv=X-UA-Compatible>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
<STYLE id=mysingle_style type=text/css>P {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 9pt; FONT-FAMILY: Arial, arial; MARGIN-TOP: 5px
}
TD {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 9pt; FONT-FAMILY: Arial, arial; MARGIN-TOP: 5px
}
LI {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 9pt; FONT-FAMILY: Arial, arial; MARGIN-TOP: 5px
}
BODY {
        FONT-SIZE: 9pt; FONT-FAMILY: Arial, arial; MARGIN: 10px; LINE-HEIGHT: 1.4
}
</STYLE>

<META name=GENERATOR content=ActiveSquare></HEAD>
<BODY>
<P>Hi Everyone,</P>
<P> </P>
<P>We have a patch for the Bus Reset Enhancements.</P>
<P>Please find attached the source code. The password is samsung123</P>
<P> </P>
<P>Please find the change description below - </P>
<P> </P>
<P>1. There are multiple paths in the driver that reset the controller and execute the initialization state machine.  Our patch is not concerned with the majority of those paths. Aside from a few additional isolated modifications, our patch focuses on the two paths that are supposed to be synchronous -i.e. they should not return to caller until all work is completed -  but which currently are not so. They are:</P>
<P>a) NVMeResetBus (and)<BR>b) NVMeAdapterControl-> ScsiRestartAdapter</P>
<P>We have introduced a new routine NVMeReInitializeController(), which will be invoked from NVMeReseBus() and NVMeAdapterControl() - ScsiRestartAdapter. This routine will reset and initialize the controller and then complete the requests. It will not return until the initialization state machine is complete.</P>
<P>We disallow processing of any SRB in NVMeStartIo() when NextDriverState != NVMeStateComplete. In this way we direct the PowerUp operations to be executed in NVMeAdapterControl() - ScsiRestartAdapter only. When resuming from hibernation for example, NVMeStartio() will not process the POWER SRB. Instead, the Power Up operations will be invoked in NVMeAdapterControl()->ScsiRestartAdapter.<BR> <BR>Additionally , Miniport drivers should disregard requests to reset the bus when ntldrDump is set to TRUE in NvmeResetBus(). But current implementation processes this request.</P>
<P><BR>2. When pAE->ntldrDump is TRUE, in the NVMeMapCore2Queue() routine, the pPGT value is NULL. Hence a BSOD occurs when executing ULONG coreNum = (ULONG)(pPN->Number + pPGT->BaseProcessor). We fixed the problem by moving access to pPGT when ntldrDump is FALSE.</P>
<P> </P>
<P>3. In ProcessIo(), when IoStatus is set to NOT_SUBMITTED, the SRB is not completed. Due to this, a BSOD was occuring when executing WHCK test "DP WLK - Hot-Add - Device test". We  fixed the problem by changing the code to complete SRB when IoStatus is NOT_SUBMITTED.</P>
<P> </P>
<P>4. We changed the use of StorPortBusy()/StorPortReady() to StorPortPause()/StorPortResume(), since StorPortBusy() will not prevent new IOS from coming in once the current ones in the driver have been completed.</P>
<P> </P>
<P> </P><SPAN class=Apple-style-span style="WHITE-SPACE: normal; WORD-SPACING: 0px; BORDER-COLLAPSE: separate; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); FONT: medium Verdana, Helvetica, Arial; ORPHANS: 2; WIDOWS: 2; LETTER-SPACING: normal; TEXT-INDENT: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><SPAN class=Apple-style-span style="FONT-SIZE: 16px">
<P style="FONT-SIZE: 9pt; FONT-FAMILY: Arial, sans-serif; MARGIN: 3.75pt 0in"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: Calibri, sans-serif; COLOR: black"><SPAN class=apple-style-span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial">Tested the following on Win7 and Windows 2012R2.</SPAN></SPAN><o:p><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"></SPAN></o:p></P>
<P class=MsoListParagraph style="FONT-SIZE: 9pt; FONT-FAMILY: Arial, sans-serif; MARGIN: 3.75pt 0in 0pt 0.5in; LINE-HEIGHT: 12pt; TEXT-INDENT: -0.25in"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; COLOR: black">- WHCK</SPAN></P>
<P class=MsoListParagraph style="FONT-SIZE: 9pt; FONT-FAMILY: Arial, sans-serif; MARGIN: 3.75pt 0in 0pt 0.5in; LINE-HEIGHT: 12pt; TEXT-INDENT: -0.25in"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; COLOR: black">- Install/Uninstall, Enable/Disable, FS Format</SPAN></P>
<P class=MsoListParagraph style="FONT-SIZE: 9pt; FONT-FAMILY: Arial, sans-serif; MARGIN: 3.75pt 0in 0pt 0.5in; LINE-HEIGHT: 12pt; TEXT-INDENT: -0.25in"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; COLOR: black">- Hibernation/Resume, Sleep/Resume</SPAN></P>
<P class=MsoListParagraph style="FONT-SIZE: 9pt; FONT-FAMILY: Arial, sans-serif; MARGIN: 3.75pt 0in 0pt 0.5in; LINE-HEIGHT: 12pt; TEXT-INDENT: -0.25in"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: Calibri, sans-serif; COLOR: black"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; COLOR: black">- IOmeter</SPAN></SPAN></P></SPAN></SPAN>
<P> </P>
<P>Thanks,</P>
<P>Suman</P><!--SP:suman.p--><!--suman.p:EP-->
<P> </P>
<TABLE id=confidentialsignimg>
<TBODY>
<TR>
<TD NAMO_LOCK>
<P><IMG border=0 src="cid:T9SZN3WZA6X7@namo.co.kr"></P></TD></TR></TBODY></TABLE></BODY></HTML><img src='http://ext.samsung.net/mailcheck/SeenTimeChecker?do=98934eddeedafa1ee879e9da2af7e626abd04dbf60be97f17d9badbdf7e30042d1afaaba7860cdcd9564217c646641ad61e16949eaa607501b20909a04efd4d2748cfe1d4e847419cf878f9a26ce15a0' border=0 width=0 height=0 style='display:none'>