Kernel: Add a VERIFY() to make sure our DMA address is valid

This checks whether the address we're trying to use for DMA is low
enough so as not to overflow the I/O register.
This commit is contained in:
Gunnar Beutner 2021-06-17 19:29:49 +02:00 committed by Andreas Kling
parent 017c5fc7d9
commit 9b14a8605a
Notes: sideshowbarker 2024-07-18 12:07:09 +09:00

View file

@ -200,6 +200,9 @@ void SB16::dma_start(uint32_t length)
// Write the buffer
IO::out8(0x8b, addr >> 16);
auto page_number = addr >> 16;
VERIFY(page_number <= NumericLimits<u8>::max());
IO::out8(0x8b, page_number);
// Enable the DMA channel
IO::out8(0xd4, (channel % 4));