Bug #612

apparent reversal of dvma vs. dma in rootnex

Added by Garrett D'Amore about 10 years ago. Updated about 10 years ago.

Start date:
Due date:
% Done:


Estimated time:
Gerrit CR:


In the i86pc rootnex, rootnex_coredma_win() appears to have a mixed up dma vs. dvma in this statement:

dmao = dma->dp_dvma_used  ? &dma->dp_dma : &dma->dp_dvma;

This bug could create problems for 32-bit only hardware running on larger systems... e.g. older PCI cards (or even SDcard!) running on systems with large memory.

Note that upstream bug 6980237 may be related, however we cannot know for certain as we do not have the relevant code from the upstream.

Testing this bug is likely to be challenging... very few devices are likely to request partial DMA this way ... I think DDRdrive may be one such device. (It requires a device that needs partial DMA using larger transfer windows than 64K, which is the bounce-buffer size in Solaris.)


Updated by Garrett D'Amore about 10 years ago

So, I may have misstated some things... also after talking with Chris George at DDRdrive, I don't think DDRdrive will be affected... it might be very difficult to witness this bug as a result.

The misstated part has to do with the conditions under which dma windows apply. I think any transfer which goes beyond the supported attributes and for a device which supports DDI_DMA_PARTIAL may be at risk. It should be noted that all SCSI hbas implicitly support partial DMA on x86 platforms, due to the way scsi_resource.c handles DMA on behalf of those HBAs.


Updated by Albert Lee about 10 years ago

  • Assignee set to Albert Lee



Updated by Garrett D'Amore about 10 years ago

  • Status changed from New to Resolved
  • Assignee changed from Albert Lee to Garrett D'Amore
  • % Done changed from 0 to 100

Fixed in:

changeset: 13268:b749961aba64
tag: tip
user: Garrett D'Amore <>
date: Wed Jan 19 08:12:06 2011 -0800
612 apparent reversal of dvma vs. dma in rootnex
Reviewed by:
Reviewed by:
Approved by:

Also available in: Atom PDF