RE: [PATCHv22 13/16] drivers: add Contiguous Memory Allocator
From: Marek Szyprowski <m.szyprowski@samsung.com>
Date: 2012-02-22 16:27:03
Also in:
linux-arm-kernel, linux-media, lkml
From: Marek Szyprowski <m.szyprowski@samsung.com>
Date: 2012-02-22 16:27:03
Also in:
linux-arm-kernel, linux-media, lkml
Hello, On Tuesday, February 21, 2012 10:30 PM Aaro Koskinen wrote:
On Fri, 17 Feb 2012, Marek Szyprowski wrote:quoted
+/** + * dma_release_from_contiguous() - release allocated pages + * @dev: Pointer to device for which the pages were allocated. + * @pages: Allocated pages. + * @count: Number of allocated pages. + * + * This function releases memory allocated by dma_alloc_from_contiguous(). + * It returns false when provided pages do not belong to contiguous area and + * true otherwise. + */ +bool dma_release_from_contiguous(struct device *dev, struct page *pages, + int count) +{ + struct cma *cma = dev_get_cma_area(dev); + unsigned long pfn; + + if (!cma || !pages) + return false; + + pr_debug("%s(page %p)\n", __func__, (void *)pages); + + pfn = page_to_pfn(pages); + + if (pfn < cma->base_pfn || pfn >= cma->base_pfn + cma->count) + return false; + + VM_BUG_ON(pfn + count > cma->base_pfn);Are you sure the VM_BUG_ON() condition is correct here?
Thanks for pointing this bug. '+ cma->count' is missing in the second part. Best regards -- Marek Szyprowski Samsung Poland R&D Center -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>