[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[win-pv-devel] XenVBD bug - IRQL mismatch between AdapterHwFindAdapter and AdapterInitialize

  • To: "win-pv-devel@xxxxxxxxxxxxxxxxxxxx" <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: "Mackay, Eric" <mackayem@xxxxxxxxxx>
  • Date: Mon, 26 Jun 2017 19:00:43 +0000
  • Accept-language: en-US
  • Delivery-date: Mon, 26 Jun 2017 19:00:55 +0000
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>
  • Thread-index: AdLurkIEZQAy54JsTbaqgofI/VxNjQ==
  • Thread-topic: XenVBD bug - IRQL mismatch between AdapterHwFindAdapter and AdapterInitialize

I’ve found a bug in XenVBD when trying to port a patch I’ve made for XenVBD 8.2 to XenVBD 9 (patch will be posted soon).


AdapterHwFindAdapter calls AdapterInitialize which asserts the IRQL is at PASSIVE_LEVEL. AdapterInitialize calls functions like ThreadCreate which also require PASSIVE_LEVEL. However, the current code cannot guarantee that AdapterInitialize is called at PASSIVE_LEVEL, because sometimes AdapterHwFindAdapter is called at DISPATCH_LEVEL. AdapterHwAdapterControl does not indicate support for ScsiRestartAdapter which can cause AdapterHwFindAdapter to be called at DISPATCH_LEVEL. See the Remarks on this page: https://msdn.microsoft.com/en-us/library/windows/hardware/ff557390(v=vs.85).aspx


Based on commit 160c370db6ad0c6f0ae027c844b2ee035d50891e in XenVBD.

win-pv-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.