From 73b1cb824029f8957d7e60c7ad3828f3eea1aca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 30 Aug 2010 20:06:52 +0000 Subject: [PATCH] * The IOCache always needs a DMAResource; it was sometimes checked, and sometimes not. * This fixes CIDs 1755-1756, and 1505-1506. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38460 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/device_manager/IOCache.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/system/kernel/device_manager/IOCache.cpp b/src/system/kernel/device_manager/IOCache.cpp index fe732901f8..3fb711c2cb 100644 --- a/src/system/kernel/device_manager/IOCache.cpp +++ b/src/system/kernel/device_manager/IOCache.cpp @@ -49,6 +49,7 @@ IOCache::IOCache(DMAResource* resource, size_t cacheLineSize) fPages(NULL), fVecs(NULL) { + ASSERT(resource != NULL); TRACE("%p->IOCache::IOCache(%p, %" B_PRIuSIZE ")\n", this, resource, cacheLineSize); @@ -461,8 +462,7 @@ IOCache::_TransferRequestLineUncached(IORequest* request, off_t lineOffset, // Keep the request in unfinished state. ScheduleRequest() will set // the final status and notify. - if (fDMAResource != NULL) - fDMAResource->RecycleBuffer(operation.Buffer()); + fDMAResource->RecycleBuffer(operation.Buffer()); if (error != B_OK) { TRACE("%p->IOCache::_TransferRequestLineUncached(): operation at " @@ -558,8 +558,7 @@ IOCache::_TransferPages(size_t firstPage, size_t pageCount, bool isWrite, request.RemoveOperation(&operation); - if (fDMAResource != NULL) - fDMAResource->RecycleBuffer(operation.Buffer()); + fDMAResource->RecycleBuffer(operation.Buffer()); if (error != B_OK) { TRACE("%p->IOCache::_TransferLine(): operation at %" B_PRIdOFF