From: <bug...@fr...> - 2005-05-21 17:36:34
|
Please do not reply to this email: if you want to comment on the bug, go to the URL shown below and enter yourcomments there. https://bugs.freedesktop.org/show_bug.cgi?id=3217 ------- Additional Comments From vs...@al... 2005-05-21 10:36 ------- Created an attachment (id=2733) --> (https://bugs.freedesktop.org/attachment.cgi?id=2733&action=view) patch to fix drm_pci_alloc() so that subsequent drm_pci_free() works Seems that the problem is that the drm_pci_alloc() implementation for Linux forgot to set the dmah->size field in the new drm_dma_handle_t structure. Because of this, subsequent drm_pci_free() passed bogus size to pci_free_consistent(), which was leading to lots of "Bad page state" messages, and subsequently to massive memory corruption resulting in a hang. Most drivers do not use drm_pci_alloc() and drm_pci_free(), therefore they were not hit by this problem. Of course, the DRM core for Linux uses drm_pci_free(), but it does not pass the drm_dma_handle_t structure from drm_pci_alloc() to it - instead it fills that structure directly, setting ->size correctly and thus avoiding the bug. This patch should fix the problem; unfortunately, I cannot get it tested on the problematic hardware until Monday. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. |