9

in kernel oops of ARM following logs are printed in kernel logs -

<1>[ 4205.112835] I[0:swapper/0:0] [c0] Unable to handle kernel paging request at virtual address ff898580 
<1>[ 4205.112874] I[0:swapper/0:0] [c0] pgd = ec3c4000 
<1>[ 4205.112901] I[0:swapper/0:0] [c0] [ff898580] *pgd=00000000 
<0>[ 4205.112939] I[0:swapper/0:0] [c0] Internal error: Oops: 80000005 #1] PREEMPT SMP ARM

Sometimes the oops this code is -

Internal error: Oops - undefined instruction: 0 [#1] PREEMPT SMP ARM

and in most of the logs it is -

Internal error: Oops: 5 [#1] PREEMPT SMP ARM

Can someone explain the purpose of this code and its meaning?

kaiwan
  • 2,114
  • 1
  • 18
  • 23
Pankaj Gupta
  • 309
  • 2
  • 10
  • Could you provide the whole stacktrace? `undefined instruction` is quite strange. It means that the compiler converted your code to an instruction that the hardware does not support. This could however be something simple like disabled floating point operations. see http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0363g/Beijdcef.html – Guru Prasad Mar 26 '15 at 17:27

1 Answers1

2

The information you provided is quite few.

As in arch/arm/kernel/traps.c

You will find

printk(KERN_EMERG "Internal error: %s: %x [#%d]" S_PREEMPT S_SMP S_ISA "\n", str, err, ++die_counter);

Actually whole stack trace will be much more helpful, you will find bug location and by disassembling to find real place in code.

Just guessing, you touched a NULL pointer ==

Michael
  • 1,313
  • 11
  • 25