- Fix DMA on the EISA bus
- Fix a critical calculation error in map register size resulting in the map register allocation worker not allocating enough map registers for a dynamic resize

svn path=/trunk/; revision=54371
This commit is contained in:
Cameron Gutman 2011-11-13 05:49:33 +00:00
parent e4eecc98b8
commit edc6eb9eca

View file

@ -614,9 +614,12 @@ HalGetAdapter(IN PDEVICE_DESCRIPTION DeviceDescription,
* Also note that we check for channel number since there are only 8 DMA
* channels on ISA, so any request above this requires new adapter.
*/
if ((DeviceDescription->InterfaceType == Isa) || !(DeviceDescription->Master))
if (((DeviceDescription->InterfaceType == Eisa) ||
(DeviceDescription->InterfaceType == Isa)) || !(DeviceDescription->Master))
{
if ((DeviceDescription->InterfaceType == Isa) && (DeviceDescription->DmaChannel >= 8))
if (((DeviceDescription->InterfaceType == Isa) ||
(DeviceDescription->InterfaceType == Eisa)) &&
(DeviceDescription->DmaChannel >= 8))
{
EisaAdapter = FALSE;
}
@ -1208,7 +1211,7 @@ HalpGrowMapBufferWorker(IN PVOID DeferredContext)
*/
KeWaitForSingleObject(&HalpDmaLock, Executive, KernelMode, FALSE, NULL);
Succeeded = HalpGrowMapBuffers(WorkItem->AdapterObject->MasterAdapter,
WorkItem->NumberOfMapRegisters);
WorkItem->NumberOfMapRegisters << PAGE_SHIFT);
KeSetEvent(&HalpDmaLock, 0, 0);
if (Succeeded)