From d82e6bcf6b00372ab17739d91d169c9ef2952d79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 27 Oct 2013 23:22:50 +0100 Subject: [PATCH] ahci: Use get_memory_map_etc(). * Simplifies code a bit. --- .../kernel/busses/scsi/ahci/ahci_port.cpp | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp b/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp index e0f1c390c1..620c1f3153 100644 --- a/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp +++ b/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp @@ -434,16 +434,20 @@ status_t AHCIPort::FillPrdTable(volatile prd *prdTable, int *prdCount, int prdMax, const void *data, size_t dataSize) { - int peMax = prdMax + 1; - physical_entry pe[peMax]; - if (get_memory_map(data, dataSize, pe, peMax ) < B_OK) { - TRACE("AHCIPort::FillPrdTable get_memory_map failed\n"); + int maxEntries = prdMax + 1; + physical_entry entries[maxEntries]; + uint32 entriesUsed = maxEntries; + + status_t status = get_memory_map_etc(B_CURRENT_TEAM, data, dataSize, + entries, &entriesUsed); + if (status != B_OK) { + TRACE("AHCIPort::FillPrdTable get_memory_map() failed: %s\n", + strerror(status)); return B_ERROR; } - int peUsed; - for (peUsed = 0; pe[peUsed].size; peUsed++) - ; - return FillPrdTable(prdTable, prdCount, prdMax, pe, peUsed, dataSize); + + return FillPrdTable(prdTable, prdCount, prdMax, entries, entriesUsed, + dataSize); }