# kernel panic with x11-drm-20090320 and gentoo-sources-2.6.27

## fb

I got 2.6.27-r8. the latest stable.

I get occasional kernel panic with that combination:

EIP: [<f949e036>] radeon_get_vblank_counter+0x76/0xd0 [radeon] SS:SEP 0068:c0469efc

video card is radeon 9200SE.

Is there a minimal kernel requirement for this verion of x11-drm?

----------

## DirtyHairy

I am using the latest git DRM (compiled myself, no ebuild) on 2.6.27-r8 and a radeon mobility X1300 and it works fine for me, no kernel panics.

----------

## fb

 *DirtyHairy wrote:*   

> I am using the latest git DRM (compiled myself, no ebuild) on 2.6.27-r8 and a radeon mobility X1300 and it works fine for me, no kernel panics.

 

Hey DirtyHairy,

Long time no see - still have your ppc machine? Don't have much time

for mine.

OK so there is probably no requirement on a kernel version but the current

snapshot is obviously buggy for my hardware or possibly I ask for something

unstable in my X options. For some reasons I included a vga driver wonder if

that's what broke?

```
# Standard VGA Device:

Section "Device"

    Identifier  "Standard VGA"

    VendorName  "Unknown"

    BoardName   "Unknown"

# The chipset line is optional in most cases.  It can be used to override

# the driver's chipset detection, and should not normally be specified.

#    Chipset    "generic"

# The Driver line must be present.  When using run-time loadable driver

# modules, this line instructs the server to load the specified driver

# module.  Even when not using loadable driver modules, this line

# indicates which driver should interpret the information in this section.

    Driver     "vga"

# The BusID line is used to specify which of possibly multiple devices

# this section is intended for.  When this line isn't present, a device

# section can only match up with the primary video device.  For PCI

# devices a line like the following could be used.  This line should not

# normally be included unless there is more than one video device

# intalled.

#    BusID      "PCI:0:10:0"

#    VideoRam   256

#    Clocks     25.2 28.3

EndSection
```

----------

## DirtyHairy

Hi fb!

Yes, I still have got my powermac, but I also don't have much time for toying around with it  :Smile:  I don't know about the VGA (can't image that it is a problem though), but come to think of it, I think that some work has been done on vsync between the 2.6.27 in-kernel drm and git (I need the git version to get vblank working on my R500), so some regressions may have popped up. Does the in-kernel drm work?

----------

## The_P

I have the same problem. I tested kernel tuxonice-2.6.24-r9, tuxonice-2.6.28-r8 and gentoo-2.6.29. I can't find a working kernel version. Is there any solution for this i was also not able to install an older version of x11-drm with the 2.6.29 kernel.

----------

## fb

 *DirtyHairy wrote:*   

> Hi fb!
> 
> Yes, I still have got my powermac, but I also don't have much time for toying around with it  I don't know about the VGA (can't image that it is a problem though), but come to think of it, I think that some work has been done on vsync between the 2.6.27 in-kernel drm and git (I need the git version to get vblank working on my R500), so some regressions may have popped up. Does the in-kernel drm work?

 I thought their was something about vga

in my kernel panic message must have been wrong. I haven't used in kernel drm for ages,

but I may have to go the git route probably should ask for another snapshot.

Possibly would help you too "The_P"

----------

## Sinker

I, too, am having this problem with x11-drm-20090320 with a Radeon Mobility 9000 on a Thinkpad. Tried with both 2.6.28 and 2.6.29 kernels. Only happens about 3 to 4 seconds after I shut down X, though, but not if I restart X (as in log out and have gdm restart it). Now I can't even re-emerge this version of x11-drm (the error is below), but I'm not sure if that's related. I've no idea when it started to do this as I don't shut the laptop down that often.

```
* Determining the location of the kernel source code

 * Found kernel source directory:

 *     /usr/src/linux

 * Found kernel object directory:

 *     /lib/modules/2.6.29-reiser4-r1/build

 * Found sources for kernel version:

 *     2.6.29-reiser4-r1

 * Checking for suitable kernel configuration options...                  [ ok ]

>>> Unpacking source...

>>> Unpacking linux-drm-20090320-kernelsource.tar.bz2 to /var/tmp/portage/x11-base/x11-drm-20090320/work

>>> Unpacking x11-drm-20090320-gentoo-0.1.tar.bz2 to /var/tmp/portage/x11-base/x11-drm-20090320/work

 * Applying various patches (bugfixes/updates) ...

 *   0001_all_Use-system-libdrm-when-building-test-programs.patch ...     [ ok ]

 * Done with patching

 * Running eautoreconf in '/var/tmp/portage/x11-base/x11-drm-20090320/work/drm' ...

 * Running aclocal ...                                                    [ ok ]

 * Running libtoolize --copy --force --install --automake ...             [ ok ]

 * Running aclocal ...                                                    [ ok ]

 * Running autoconf ...                                                   [ ok ]

 * Running autoheader ...                                                 [ ok ]

 * Running automake --add-missing --copy --foreign ...                    [ ok ]

 * Running elibtoolize in: drm

 *   Applying sed-1.5.6.patch ...

 * Converting drm/linux-core/Makefile to use M= instead of SUBDIRS= ...   [ ok ]

>>> Source unpacked in /var/tmp/portage/x11-base/x11-drm-20090320/work

>>> Compiling source in /var/tmp/portage/x11-base/x11-drm-20090320/work/drm ...

 * Building DRM in /var/tmp/portage/x11-base/x11-drm-20090320/work/drm/linux-core...

ln: creating symbolic link `Module.symvers': File exists

 * Preparing drm module

make -j2 HOSTCC=i686-pc-linux-gnu-gcc CROSS_COMPILE=i686-pc-linux-gnu- LDFLAGS= DRM_MODULES=radeon.ko LINUXDIR=/usr/src/linux M=/var/tmp/portage/x11-base/x11-drm-20090320/work/drm/linux-core modules 

sh ../scripts/create_linux_pci_lists.sh < ../shared-core/drm_pciids.txt

make -C /usr/src/linux  M=`/bin/pwd` DRMSRCDIR=`/bin/pwd` modules

make[1]: Entering directory `/usr/src/linux-2.6.29-reiser4-r1'

fatal: Not a git repository

  CC [M]  /var/tmp/portage/x11-base/x11-drm-20090320/work/drm/linux-core/drm_auth.o

  CC [M]  /var/tmp/portage/x11-base/x11-drm-20090320/work/drm/linux-core/drm_bufs.o

/var/tmp/portage/x11-base/x11-drm-20090320/work/drm/linux-core/drm_bufs.c: In function 'drm_rmmap_locked':

/var/tmp/portage/x11-base/x11-drm-20090320/work/drm/linux-core/drm_bufs.c:402: warning: enumeration value '_DRM_GEM' not handled in switch

/bin/sh: scripts/basic/fixdep: Permission denied

make[2]: *** [/var/tmp/portage/x11-base/x11-drm-20090320/work/drm/linux-core/drm_auth.o] Error 1

make[2]: *** Waiting for unfinished jobs....

/bin/sh: scripts/basic/fixdep: Permission denied

make[2]: *** [/var/tmp/portage/x11-base/x11-drm-20090320/work/drm/linux-core/drm_bufs.o] Error 1

make[1]: *** [_module_/var/tmp/portage/x11-base/x11-drm-20090320/work/drm/linux-core] Error 2

make[1]: Leaving directory `/usr/src/linux-2.6.29-reiser4-r1'

make: *** [modules] Error 2

 * 

 * ERROR: x11-base/x11-drm-20090320 failed.

 * Call stack:

 *               ebuild.sh, line   49:  Called src_compile

 *             environment, line 3841:  Called src_compile_os

 *             environment, line 3880:  Called src_compile_linux

 *             environment, line 3875:  Called linux-mod_src_compile

 *             environment, line 3051:  Called die

 * The specific snippet of code:

 *               eval "emake HOSTCC="$(tc-getBUILD_CC)"                   CROSS_COMPILE=${CHOST}-                   LDFLAGS="$(get_abi_LDFLAGS)"                   ${BUILD_FIXES}                   ${BUILD_PARAMS}                   ${BUILD_TARGETS} " || die "Unable to emake HOSTCC="$(tc-getBUILD_CC)" CROSS_COMPILE=${CHOST}- LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}";

 *  The die message:

 *   Unable to emake HOSTCC=i686-pc-linux-gnu-gcc CROSS_COMPILE=i686-pc-linux-gnu- LDFLAGS=  DRM_MODULES='radeon.ko' LINUXDIR='/usr/src/linux' M='/var/tmp/portage/x11-base/x11-drm-20090320/work/drm/linux-core' modules

```

----------

## fb

 *Sinker wrote:*   

> I, too, am having this problem with x11-drm-20090320 with a Radeon Mobility 9000 on a Thinkpad. Tried with both 2.6.28 and 2.6.29 kernels. Only happens about 3 to 4 seconds after I shut down X, though, but not if I restart X (as in log out and have gdm restart it). Now I can't even re-emerge this version of x11-drm (the error is below), but I'm not sure if that's related. I've no idea when it started to do this as I don't shut the laptop down that often.
> 
> 

 

It used to be after I shutdown X until one day it happened to me when I booted.

Your build error is strange I wonder if it is kernel version related ie you should use

another kernel, possibly a 2.6.30. the best thing would be to ask on #gentoo-desktop (on irc).

I reverted to in kernel drm for now.

I have other problems but unrelated still unsolved (X doesn't sart on boot but restarting

xdm works fine).

----------

## DMoL

I have the same trouble on my Thinkpad r51e with radeon xpress 200m. 

I detected, that using hibernate-ram on kernel 2.6.29-tux-on-ice and 2.6.30-r8 causes kernel panic. If I do "rmmod dri radeon", all works perfectly. Damn! I can't use TON to quick suspend/resume! The only solution I know is to shutdown Xorg, unload the modules and hibernate... But vesa video driver render my desktop slowly...

Is it possible to localize the bug somehow and file it? Does it relates to x11-base/x11-drm or x11-drivers/xf86-video-ati?

----------

## fb

 *DMoL wrote:*   

> I have the same trouble on my Thinkpad r51e with radeon xpress 200m. 
> 
> I detected, that using hibernate-ram on kernel 2.6.29-tux-on-ice and 2.6.30-r8 causes kernel panic. If I do "rmmod dri radeon", all works perfectly. Damn! I can't use TON to quick suspend/resume! The only solution I know is to shutdown Xorg, unload the modules and hibernate... But vesa video driver render my desktop slowly...
> 
> Is it possible to localize the bug somehow and file it? Does it relates to x11-base/x11-drm or x11-drivers/xf86-video-ati?

 Depends. If it also happens with in kernel drm it is probably

the video driver. If not it points to x11-drm.

----------

## DaggyStyle

no problems here with drm-999999999 and toi 2.6.29-r3

----------

## bunder

i have this problem too...

2.6.27-r8 + RV350 (mobility 9700)

```
[ebuild   R   ] x11-libs/libdrm-2.4.11  USE="-debug" 0 kB

[ebuild   R   ] x11-proto/xf86driproto-2.0.4  0 kB

[ebuild   R   ] media-libs/mesa-7.4.3  USE="-debug -doc -motif -nptl -pic -xcb" VIDEO_CARDS="radeon -intel -mach64 -mga -none -r128 -radeonhd -s3virge -savage -sis (-sunffb) -tdfx -trident -via" 0 kB

[ebuild   R   ] x11-base/x11-drm-20090320  VIDEO_CARDS="radeon -mach64 -mga -r128 -radeonhd -savage -sis (-sunffb) -tdfx -via -xgi" 0 kB

[ebuild   R   ] x11-base/xorg-server-1.6.1.901-r3  USE="sdl xorg -debug -dmx -hal -ipv6 -kdrive -minimal -nptl -tslib" INPUT_DEVICES="evdev keyboard mouse synaptics -acecad -aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300 -elographics -fpit -hyperpen -jamstudio -joystick -magellan -microtouch -mutouch -palmax -penmount -spaceorb -summa -tek4957 -tslib -ur98 -virtualbox -vmmouse -void -wacom" VIDEO_CARDS="radeon -apm -ark -ast -chips -cirrus -dummy -epson -fbdev -fglrx -geode -glint -i128 -i740 (-impact) -imstt -intel -mach64 -mga -neomagic -nv -nvidia -r128 -radeonhd -rendition -s3 -s3virge -savage -siliconmotion -sis -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l -vermilion -vesa -via -virtualbox -vmware -voodoo -xgi" 0 kB

[ebuild   R   ] x11-drivers/xf86-video-ati-6.12.2  USE="-debug" 0 kB

[ebuild   R   ] x11-drivers/xf86-input-keyboard-1.3.2  USE="-debug" 0 kB

[ebuild   R   ] x11-drivers/xf86-input-mouse-1.4.0  USE="-debug" 0 kB

[ebuild   R   ] x11-drivers/xf86-input-synaptics-1.1.2  USE="-debug -hal" 0 kB

```

logout or VT-switch causes the panic.

picture - sorry it's sideways, i'm too lazy to edit it.   :Razz: 

edit: i cleaned up the picture a bit and rotated it the right way.  i hope the stack trace is useful.

----------

## rickvernam

This is still happening, though if I use the x11-drm previous to -20090320 I don't experience this crash.

I have an rv350 running amd64 stable.

Are others' having issues still, or have others seen the problem resolved?

I did a quick 5 minute search at bugs.gentoo.org, but nothing obvious turned up - does anybody know of an open bug anywhere?

Lets get this bugger solved!

Thanks,

-Rick

----------

## rickvernam

it seems the in-kernel drm in gentoo-sources-2.6.30-r2 does not exhibit this crash.

----------

## bandreabis

is

 *Quote:*   

> cat /etc/conf.d/local.stop
> 
> rmmod -f radeon
> 
> rmmod -f drm

 

enough to solve?

EDIT: no, it's not!

----------

## 3P

I also have the same problem with Radeon R300 - it only works with old versions of x11-drm (<20090302).

Recent kernels (2.6.31_rc5) crash randomly when using kernel's DRM modules, and the x11-drm package doesn't compile against it.

Results for newer versions of x11-drm (20090805, 20090622, 20090320):

 Kernels 2.6.29 doesn't load the radeon module properly.

 Kernels <2.6.29 crash on shutdown , probably while unloading radeon.ko. Using the newest version of libdrm makes no difference.

 Kernel 2.6.30 doesn't work with my sound card, so I didn't test it

I still need to check if x11-drm-20080710 is really stable - I haven't used it much yet.

----------

## gsra99

There is a check_null_pointer patch to solve this problem. It was reported in bugzilla, but I do not have the link. Here is the patch:

diff --git a/shared-core/radeon_irq.c b/shared-core/radeon_irq.c

index 60654b2..9ede679 100644

--- a/shared-core/radeon_irq.c

+++ b/shared-core/radeon_irq.c

@@ -295,6 +295,9 @@ u32 radeon_get_vblank_counter(struct drm_device *dev, int c$

                return -EINVAL;

        }

+       if (!dev_priv->mmio)

+               return -EINVAL;

+

        if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690) {

                if (crtc == 0)

                        return RADEON_READ(R500_D1CRTC_FRAME_COUNT);

Apply this patch and the problem should be solved. It works for my Radeon X700 anyway.

OK found the link:

https://bugs.gentoo.org/show_bug.cgi?id=264280

The patch and custom ebuild are there. I am also using kernel 2.6.27-gentoo-r10.

----------

## rncwnd

Patch works also with x11-drm-20090805. Tried it!

Relevant system informations:

vanilla-sources 2.6.30.5

xf86-video-ati-6.12.2-r1

x11-drm-20090805

Thanks for the patch!

----------

