The devil is in the details – decoding the Oops
We'll use the third scenario (or use/test case), covered in the section, Case 3 – Oops by writing to a structure member when the structure pointer's NULL. To quickly recap, this is what we did to trigger this particular kernel Oops (case #3):
cd ch7/oops_tryv2 make sudo insmod ./oops_tryv2.ko bug_in_workq=yes
As seen earlier, it triggers an Oops. Now we get to the interesting part – deciphering the Oops, step by step, line by line.
Before starting, it's important to realize that the detailed discussion below is necessarily arch-specific, here and now pertaining to the x86_64 platform (as portions of the Oops output are, of course, very arch-specific). We shall also show how a typical Oops appears on the ARM platform in a later section.
Line-by-line interpretation of an Oops
The initial, and really key, portion of the Oops we get is seen in Figure 7.5. Now, to help refer to it line by...