https://bugs.freedesktop.org/show_bug.cgi?id=45503
Bug #: 45503 Summary: [drm:radeon_get_bios] *ERROR* Unable to locate a BIOS ROM Classification: Unclassified Product: DRI Version: unspecified Platform: x86-64 (AMD64) OS/Version: Linux (All) Status: NEW Severity: major Priority: medium Component: DRM/Radeon AssignedTo: dri-devel@lists.freedesktop.org ReportedBy: mlambda@gmail.com
Created attachment 56455 --> https://bugs.freedesktop.org/attachment.cgi?id=56455 dmesg with kernel 3.2.2
On my HP Pavilion dv7 6104eg notebook with kernel 3.3-rc2 I get the following error: ---------------------------------------- [ 10.341795] [drm] radeon defaulting to kernel modesetting. [ 10.341797] [drm] radeon kernel modesetting enabled. [ 10.341809] VGA switcheroo: detected switching method _SB_.PCI0.GFX0.ATPX handle [ 10.341851] radeon 0000:01:00.0: enabling device (0000 -> 0003) [ 10.342036] [drm] initializing kernel modesetting (TURKS 0x1002:0x6740 0x103C:0x3389). [ 10.342074] [drm] register mmio base: 0xC6500000 [ 10.342075] [drm] register mmio size: 131072 [ 10.342077] vga_switcheroo: enabled [ 10.342166] radeon atpx: version is 1 [ 10.365217] radeon 0000:01:00.0: Invalid ROM contents [ 10.365319] radeon 0000:01:00.0: Invalid ROM contents [ 10.365368] [drm:radeon_get_bios] *ERROR* Unable to locate a BIOS ROM [ 10.365408] radeon 0000:01:00.0: Fatal error during GPU init [ 10.365444] [drm] radeon: finishing device. [ 10.365447] [TTM] Memory type 2 has not been initialized. [ 10.366516] radeon 0000:01:00.0: no bo for sa manager [ 10.366540] vga_switcheroo: disabled [ 10.366663] radeon: probe of 0000:01:00.0 failed with error -22 ----------------------------------------
I want to switch off the discrete Radeon GPU with vga_switcheroo when using Linux as it gets quite hot and causes the fan to run permanently. This used to work with kernel 3.2.2 without any problems.
Please tell me which additional information you need to resolve the issue!
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #1 from mlambda@gmail.com 2012-02-01 07:57:27 PST --- Created attachment 56456 --> https://bugs.freedesktop.org/attachment.cgi?id=56456 dmesg with kernel 3.3-rc2
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #2 from Alex Deucher agd5f@yahoo.com 2012-02-01 08:14:14 PST --- Please make sure pci quirks are enabled in your kernel config. If it still doesn't work with that enabled, can you bisect?
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #3 from mlambda@gmail.com 2012-02-01 08:35:41 PST --- Do you mean this option: CONFIG_PCI_QUIRKS=y ? It is enabled in my kernel config.
I'm sorry, but I have never bisected a kernel bug before and I don't know the kernel source very well. Are there many changes to radeon_get_bios from 3.2.2 to 3.3-rc2? Maybe you can guess two commits and I can try them...
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #4 from Dave Airlie airlied@freedesktop.org 2012-02-01 09:02:31 PST --- Its most likely one of
211fa4fc4e13492151e698d92b0dff56b29928ec
a3f83ab1a717c0e6c2f59a4cfdaa10707cc35c55
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #5 from mlambda@gmail.com 2012-02-01 10:25:18 PST --- Commit a3f83ab1a717c0e6c2f59a4cfdaa10707cc35c55 works, commit 211fa4fc4e13492151e698d92b0dff56b29928ec doesn't.
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #6 from mlambda@gmail.com 2012-02-01 10:26:12 PST --- Created attachment 56461 --> https://bugs.freedesktop.org/attachment.cgi?id=56461 dmesg with commit 211fa4f...
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #7 from mlambda@gmail.com 2012-02-01 10:26:45 PST --- Created attachment 56462 --> https://bugs.freedesktop.org/attachment.cgi?id=56462 dmesg with commit a3f83ab...
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #8 from Dave Airlie airlied@freedesktop.org 2012-02-01 12:49:24 PST --- Created attachment 56468 --> https://bugs.freedesktop.org/attachment.cgi?id=56468 debugging patch
this is a debugging patch to apply on top of 3.3-rc2
can you get the dmesg with it applied?
thanks.
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #9 from mlambda@gmail.com 2012-02-01 13:40:08 PST --- Created attachment 56474 --> https://bugs.freedesktop.org/attachment.cgi?id=56474 dmesg with debug patch
Here's the dmesg output with your debugging patch applied.
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #10 from mlambda@gmail.com 2012-02-02 06:20:36 PST --- I just found the solution:
diff -ur a/drivers/gpu/drm/radeon/radeon_atpx_handler.c b/drivers/gpu/drm/radeon/radeon_atpx_handler.c --- a/drivers/gpu/drm/radeon/radeon_atpx_handler.c 2012-01-31 22:31:54.000000000 +0100 +++ b/drivers/gpu/drm/radeon/radeon_atpx_handler.c 2012-02-02 15:03:32.408629788 +0100 @@ -58,9 +58,12 @@ }
obj = (union acpi_object *)buffer.pointer; + printk("obj->buffer.length: %i\n", obj->buffer.length); + printk("len: %i\n", len); memcpy(bios+offset, obj->buffer.pointer, obj->buffer.length); + len = obj->buffer.length; kfree(buffer.pointer); - return obj->buffer.length; + return len; }
bool radeon_atrm_supported(struct pci_dev *pdev)
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #11 from mlambda@gmail.com 2012-02-02 06:22:03 PST --- Created attachment 56517 --> https://bugs.freedesktop.org/attachment.cgi?id=56517 dmesg with my patch
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #12 from Dave Airlie airlied@freedesktop.org 2012-02-02 06:59:30 PST --- arrgh good catch, I'll send a patch with that fix now,
thanks for tracking that down.
https://bugs.freedesktop.org/show_bug.cgi?id=45503
mlambda@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
https://bugs.freedesktop.org/show_bug.cgi?id=45503
--- Comment #13 from Florian Mickler florian@mickler.org 2012-02-11 07:52:31 PST --- A patch referencing this bug report has been merged in Linux v3.3-rc3:
commit de47a9cd62771e3e78954d855d2304fbad4c5a44 Author: Dave Airlie airlied@redhat.com Date: Thu Feb 2 15:25:16 2012 +0000
drm/radeon: fix use after free in ATRM bios reading code.
dri-devel@lists.freedesktop.org