[haiku-commits] r37214 - haiku/trunk/src/add-ons/kernel/drivers/graphics/radeon

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 21 Jun 2010 23:48:02 +0200 (CEST)

Author: bonefish
Date: 2010-06-21 23:48:02 +0200 (Mon, 21 Jun 2010)
New Revision: 37214
Changeset: http://dev.haiku-os.org/changeset/37214/haiku

Modified:
   haiku/trunk/src/add-ons/kernel/drivers/graphics/radeon/DMA.c
Log:
Radeon_PrepareDMA(): Fail when encountering physical addresses > 4 GB.


Modified: haiku/trunk/src/add-ons/kernel/drivers/graphics/radeon/DMA.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/graphics/radeon/DMA.c        
2010-06-21 21:17:23 UTC (rev 37213)
+++ haiku/trunk/src/add-ons/kernel/drivers/graphics/radeon/DMA.c        
2010-06-21 21:48:02 UTC (rev 37214)
@@ -88,6 +88,15 @@
                        if( contig_size == 0 )
                                break;
 
+#if B_HAIKU_PHYSICAL_BITS > 32
+                       if (address + contig_size > (phys_addr_t)1 << 32) {
+                               SHOW_ERROR(2, "Physical address > 4 GB: %#" 
B_PRIxPHYSADDR
+                                       "size: %#" B_PRIxSIZE, address, size);
+                               res = B_BAD_VALUE;
+                               goto err;
+                       }
+#endif
+
                        target += contig_size;
 
                        while( contig_size > 0 ) {


Other related posts:

  • » [haiku-commits] r37214 - haiku/trunk/src/add-ons/kernel/drivers/graphics/radeon - ingo_weinhold