mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-25 05:34:00 +08:00
drm/radeon: Fix pci_map_page() error checking
0 is a valid DMA address from pci_map_page(), use pci_dma_mapping_error() instead to check for errors [airlied: fix warning + two other places with errors.] Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
1a72d65d62
commit
a30f6fb7ce
@ -152,7 +152,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
|
|||||||
/* we need to support large memory configurations */
|
/* we need to support large memory configurations */
|
||||||
entry->busaddr[i] = pci_map_page(dev->pdev, entry->pagelist[i],
|
entry->busaddr[i] = pci_map_page(dev->pdev, entry->pagelist[i],
|
||||||
0, PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
|
0, PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
|
||||||
if (entry->busaddr[i] == 0) {
|
if (pci_dma_mapping_error(dev->pdev, entry->busaddr[i])) {
|
||||||
DRM_ERROR("unable to map PCIGART pages!\n");
|
DRM_ERROR("unable to map PCIGART pages!\n");
|
||||||
drm_ati_pcigart_cleanup(dev, gart_info);
|
drm_ati_pcigart_cleanup(dev, gart_info);
|
||||||
address = NULL;
|
address = NULL;
|
||||||
|
@ -200,7 +200,7 @@ int r600_page_table_init(struct drm_device *dev)
|
|||||||
entry->pagelist[i], 0,
|
entry->pagelist[i], 0,
|
||||||
PAGE_SIZE,
|
PAGE_SIZE,
|
||||||
PCI_DMA_BIDIRECTIONAL);
|
PCI_DMA_BIDIRECTIONAL);
|
||||||
if (entry->busaddr[i] == 0) {
|
if (pci_dma_mapping_error(dev->pdev, entry->busaddr[i])) {
|
||||||
DRM_ERROR("unable to map PCIGART pages!\n");
|
DRM_ERROR("unable to map PCIGART pages!\n");
|
||||||
r600_page_table_cleanup(dev, gart_info);
|
r600_page_table_cleanup(dev, gart_info);
|
||||||
goto done;
|
goto done;
|
||||||
|
@ -347,7 +347,8 @@ int radeon_dummy_page_init(struct radeon_device *rdev)
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
rdev->dummy_page.addr = pci_map_page(rdev->pdev, rdev->dummy_page.page,
|
rdev->dummy_page.addr = pci_map_page(rdev->pdev, rdev->dummy_page.page,
|
||||||
0, PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
|
0, PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
|
||||||
if (!rdev->dummy_page.addr) {
|
if (pci_dma_mapping_error(rdev->pdev, rdev->dummy_page.addr)) {
|
||||||
|
dev_err(&rdev->pdev->dev, "Failed to DMA MAP the dummy page\n");
|
||||||
__free_page(rdev->dummy_page.page);
|
__free_page(rdev->dummy_page.page);
|
||||||
rdev->dummy_page.page = NULL;
|
rdev->dummy_page.page = NULL;
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
Loading…
Reference in New Issue
Block a user