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
Instantly invite friends from Facebook and other social networks to join you on Windows Live™ Messenger. Invite friends now!
|