apparent reversal of dvma vs. dma in rootnex
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 11 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 Garrett D'Amore almost 11 years ago
- Status changed from New to Resolved
- Assignee changed from Albert Lee to Garrett D'Amore
- % Done changed from 0 to 100