Running GPL PV Windows drivers on Windows 2003 Server Standard Edition SP2 -
The current GPL PV Windows xennet driver source found in the repository will
BSOD if the option "Large Send Offload" is changed to disabled or if
the driver is disabled.
Tracked down the issue via WinDbg –
If a buffer is in the free list prior to the function XenNet_RxBufferFree()
being called via the function XenNet_RxShutdown() the array fl->page_list[]
will be overwritten and the variable page_free will be stepped on.
A simple solution, which I have verified is to dispose of the free list buffers
(if there are any) by calling the function XenFreelist_Dispose() prior to
calling the function XenNet_RxBufferFree()
Here’s the fix for the function XenNet_RxShutdown(); add the following lines
after KeAcquireSpinLock() and before XenNet_RxBufferFree ()
/* free any buffers in free list before freeing all rx buffers */
XenFreelist_Dispose(&xi->rx_freelist);
Bart
_________________________________________________________________
Now you can invite friends from Facebook and other groups to join you on Windows
Live™ Messenger. Add now.
https://www.invite2messenger.net/im/?source=TXT_EML_WLH_AddNow_Now
--_4d872b99-5d0f-40d7-8947-9e605f64f748_
Content-Type: text/html; charset="windows-1256"
Content-Transfer-Encoding: 8bit
<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class=''hmmessage''>
<P class=EC_MsoNormal style="BACKGROUND: white; LINE-HEIGHT:
normal"><SPAN style="FONT-SIZE: 10pt"><FONT
color=#000000><FONT face=Calibri>Running GPL PV Windows drivers on
Windows 2003 Server Standard Edition SP2 -
</FONT></FONT></SPAN></P>
<P class=EC_MsoNormal style="BACKGROUND: white; LINE-HEIGHT:
normal"><SPAN style="FONT-SIZE: 10pt"><FONT
face=Calibri color=#000000></FONT></SPAN> </P>
<P class=EC_MsoNormal style="BACKGROUND: white; LINE-HEIGHT:
normal"><SPAN style="FONT-SIZE: 10pt"><FONT
color=#000000><FONT face=Calibri>The current GPL PV Windows xennet
driver source found in the repository will BSOD if the option "Large Send
Offload" is changed to disabled or if the driver is
disabled.</FONT></FONT></SPAN></P>
<P class=EC_MsoNormal style="BACKGROUND: white; LINE-HEIGHT:
normal"><SPAN style="FONT-SIZE: 10pt"><FONT
face=Calibri color=#000000></FONT></SPAN> </P>
<P class=EC_MsoNormal style="BACKGROUND: white; LINE-HEIGHT:
normal"><SPAN style="FONT-SIZE: 10pt"><FONT
color=#000000><FONT face=Calibri>Tracked down the issue via WinDbg
–</FONT></FONT></SPAN></P>
<P class=EC_MsoNormal style="BACKGROUND: white; LINE-HEIGHT:
normal"><FONT color=#000000><FONT face=Calibri><SPAN
style="FONT-SIZE: 10pt">If a buffer is in the free list prior to
the function XenNet_RxBufferFree() being called via the function
</SPAN><SPAN style="FONT-SIZE: 10pt">XenNet_RxShutdown()
the array fl->page_list[] will be overwritten and the variable page_free
will be stepped on.</SPAN></FONT></FONT></P>
<P class=EC_MsoNormal style="BACKGROUND: white; LINE-HEIGHT:
normal"><FONT color=#000000><FONT face=Calibri><SPAN
style="FONT-SIZE: 10pt"></SPAN><SPAN
style="FONT-SIZE:
10pt"></SPAN></FONT></FONT> </P>
<P class=EC_MsoNormal><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT:
115%"><FONT color=#000000><FONT face=Calibri>A simple
solution, which I have verified is to dispose of the free list buffers (if there
are any) by calling the function XenFreelist_Dispose() prior to calling the
function XenNet_RxBufferFree()</FONT></FONT></SPAN></P>
<P class=EC_MsoNormal><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT:
115%"><FONT face=Calibri
color=#000000></FONT></SPAN> </P>
<P class=EC_MsoNormal><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT:
115%"><FONT color=#000000><FONT face=Calibri>Here’s the fix
for the function XenNet_RxShutdown(); add the following lines after
KeAcquireSpinLock() and before
<SPAN> </SPAN>XenNet_RxBufferFree
()</FONT></FONT></SPAN></P>
<P class=EC_MsoNormal><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT:
115%"><FONT color=#000000><FONT
face=Calibri><SPAN> </SPAN>/* free any buffers in free
list before freeing all rx buffers
*/</FONT></FONT></SPAN></P>
<P class=EC_MsoNormal><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT:
115%"><FONT color=#000000><FONT
face=Calibri><SPAN>
</SPAN>XenFreelist_Dispose(&xi->rx_freelist);</FONT></FONT></SPAN></P>
<P class=EC_MsoNormal><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT:
115%"><FONT face=Calibri
color=#000000> </FONT></SPAN></P>
<P class=EC_MsoNormal><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT:
115%"></SPAN> </P>
<P class=EC_MsoNormal><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT:
115%"><FONT color=#000000><FONT
face=Calibri>Bart</FONT></FONT></SPAN></P><br
/><hr />Now you can invite friends from Facebook and other groups to
join you on Windows Live™ Messenger. <a
href=''https://www.invite2messenger.net/im/?source=TXT_EML_WLH_AddNow_Now''
target=''_new''>Add them now!</a></body>
</html>
--_4d872b99-5d0f-40d7-8947-9e605f64f748_--
--===============1890304099=Content-Type: text/plain;
charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
--===============1890304099==--