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 ) {