OOPS-decoding for fun and profit:

A reasonable decode of the code from the OOPS

  0x400641 <array+1>:  mov    0x16e0(%r12),%rdx
   0x400649 <array+9>:  lea    0x16e0(%r12),%rcx
   0x400651 <array+17>: cmp    %rdx,%rcx
   0x400654 <array+20>: lea    -0xb0(%rdx),%rax
   0x40065b <array+27>: je     0x400682
   0x40065d <array+29>: nopl   0x0(%rax)
   0x400664 <array+36>: mov    0x88(%rax),%rdx
   0x40066b <array+43>: add    0x30(%rdx),%ebx <- we die here
   0x40066e <array+46>: mov    0xb0(%rax),%rdx
   0x400675 <array+53>: cmp    %rdx,%rcx
   0x400678 <array+56>: lea    -0xb0(%rdx),%rax
   0x40067f <array+63>: add    %ah,0x1000a70(%rip)        # 0x14010f5
   0x400685:    sbb    (%rbx),%eax
   0x400687:    cmp    (%rax),%ebp
   0x400689:    add    %al,(%rax)
   0x40068b:    add    %al,(%rax,%rax,1)
   0x40068e:    add    %al,(%rax)
   0x400690:    rex.WR std 
   0x400692:    (bad)  
   0x400693:    incl   0x0(%rax,%rax,1)

Some comparison with asm from my own tree suggest that

%rdx == gtt_space
0x30(%rdx) gtt_space->size

%rax == obj
0x88(rax) == obj->gtt_space

0xb0(rax) == obj->mm_list.next

We die at NULL+0x30.

Stuff before&after makes less sense, and I'm misssing the function exit
code which should follow. Propably the add %rip does something fancy
out-of-line.

In other news we have an obj on the pinned list with gtt_space = NULL.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/906086

Title:
  [arrandale] kernel OOPS setting external monitor to a higher
  resolution

To manage notifications about this bug go to:
https://bugs.launchpad.net/xserver-xorg-video-intel/+bug/906086/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to