Bug 35192
Summary: | BUG() in radeon driver with ATI Technologies Inc RV515 [Radeon X1300] | ||
---|---|---|---|
Product: | Drivers | Reporter: | Anthony Basile (blueness) |
Component: | Video(DRI - non Intel) | Assignee: | drivers_video-dri |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | akpm, alan, florian, glisse, greg, kernel, psomas |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | http://bugs.gentoo.org/show_bug.cgi?id=359281 | ||
Kernel Version: | 2.6.37 and 2.6.38 | Subsystem: | |
Regression: | Yes | Bisected commit-id: |
Description
Anthony Basile
2011-05-16 00:02:45 UTC
Bisecting shows that reverting 737a3bb9416ce2a7c7a4170852473a4fcc9c67e8 fixed the problem. The patch is in comment 28 of the Gentoo bug report. OK, this is a bit strange. I can see that Greg's 737a3bb9416ce2a7c7a4170852473a4fcc9 would cause radeon_cp_init() to crash when it is called via ioctl. It calls platform_device_register_resndata(), but platform_device_register_resndata() got unloaded from kernel memory. But that will only happen if CONFIG_MODULES=n, and in the config attached to the gentto report, CONFIG_MODULES=y. So platform_device_register_resndata() won't have been unloaded! Still, we should revert 737a3bb9416ce2a7c7a4170852473a4fcc9, as its assumptions are wrong in this case. Actually, radeon_cp_init() crashed only with later kernel configurations which had CONFIG_MODULES=n. And that's because of the commit 737a3b. Previous configuration had CONFIG_MODULES=y, but with 2.6.36 kernels, and the bug/dmesg output was different I think. Probably it was a different, 2.6.36-related bug, which was fixed in later kernel releases. OK, thanks. Mystery solved. So is the bug still revealent ? If so what is the bt now ? The only problem now seems to be with commit 737a3b, which should be reverted, as it breaks radeon with a non-modular kernel (because of __init_or_module). A patch referencing this bug report has been merged in Linux v3.0-rc6: commit bb2b43fefab723f4a0760146e7bed59d41a50e53 Author: Andrew Morton <akpm@linux-foundation.org> Date: Mon May 23 14:44:19 2011 -0700 drivers/base/platform.c: don't mark platform_device_register_resndata() as __init_or_module |