Kernel Trap - Divide by Zero

I am currently using a 2011 iMac running OS X Lion. We are constantly running into this error which is causing the machine to error and force us to shutdown.

The 2nd line of the error is the most bizarre and possibly concerning thing to me:

Kernel trap at 0xffffff7f80f2477a, type 0=divide error, registers

I found this post here about changing the CPUID Limit, but it's older... What is cauing this error to happen seemingly out of nowhere, and how can I fix it?

Tue Nov  1 09:41:19 2011
panic(cpu 0 caller 0xffffff80002c268d): Kernel trap at 0xffffff7f80f2477a, type 0=divide error, registers:
CR0: 0x000000008001003b, CR2: 0x000000010bdea8e0, CR3: 0x0000000000100000, CR4: 0x00000000000606e0
RAX: 0x0000000000000360, RBX: 0x0000000000000000, RCX: 0xffffff807fe33cb8, RDX: 0x0000000000000000
RSP: 0xffffff807fe33950, RBP: 0xffffff807fe339f0, RSI: 0xffffff800de366b3, RDI: 0xffffff807b7dd100
R8:  0x0000000000000054, R9:  0xffffff807b795048, R10: 0xffffff806b85ed44, R11: 0xffffff8000639c64
R12: 0x000000eba6f03c8e, R13: 0x000000eba6f0679e, R14: 0xffffff800de36004, R15: 0x0000000000000000
RFL: 0x0000000000010246, RIP: 0xffffff7f80f2477a, CS:  0x0000000000000008, SS:  0x0000000000000010
CR2: 0x000000010bdea8e0, Error code: 0x0000000000000000, Faulting CPU: 0x0

Backtrace (CPU 0), Frame : Return Address
0xffffff807fe33610 : 0xffffff8000220702 
0xffffff807fe33690 : 0xffffff80002c268d 
0xffffff807fe33830 : 0xffffff80002d7a3d 
0xffffff807fe33850 : 0xffffff7f80f2477a 
0xffffff807fe339f0 : 0xffffff7f80f209c8 
0xffffff807fe33a80 : 0xffffff7f80ed11af 
0xffffff807fe33c30 : 0xffffff7f80eb7ccd 
0xffffff807fe33d10 : 0xffffff7f80f1450f 
0xffffff807fe33d50 : 0xffffff7f80e82a9c 
0xffffff807fe33e60 : 0xffffff7f80e81b04 
0xffffff807fe33e80 : 0xffffff7f80edf12d 
0xffffff807fe33ec0 : 0xffffff7f80e9f936 
0xffffff807fe33ef0 : 0xffffff8000639536 
0xffffff807fe33f30 : 0xffffff80006382b0 
0xffffff807fe33f70 : 0xffffff8000638154 
0xffffff807fe33fb0 : 0xffffff8000820057 
      Kernel Extensions in backtrace:
         com.apple.driver.AirPort.Atheros40(500.55.5)[01000ACB-C064-3F42-820F-BDE200826725]@0xffffff7f80e80000->0xffffff7f80fbffff
            dependency: com.apple.iokit.IOPCIFamily(2.6.5)[95ABB490-3AB5-3D5E-9C21-67089A9AE6A1]@0xffffff7f80826000
            dependency: com.apple.iokit.IO80211Family(400.40)[78A58272-2170-3068-9C63-88301C99C406]@0xffffff7f80e48000
            dependency: com.apple.iokit.IONetworkingFamily(2.0)[59A00F6B-3710-3E07-9921-70C45782FF8C]@0xffffff7f8092a000

Well, given the problem is related to AirPort (as indicated by com.apple.driver.AirPort.Atheros40), your first fix would be to: Disable AirPort.

These kinds of kernel traps usually indicate firmware / driver issues which you won't be able to resolve without any specific Apple updates addressing the issue.

You can temporarily disable the kernel extension responsible by trying:

sudo kextunload -b com.apple.driver.AirPort.Atheros40

The kernel extensions currently loaded, related to AirPort, can also be found by:

kextstat -l | grep -i airport

Seems to be a common problem with Atheros chipsets and OS X Lion. Some solution is offered in this thread on Apple Discussions. In the first post of the linked page, the author suggests to swap out the kernel extension with an older version from Snow Leopard. If you dare to try it, remember to make a backup.

This is just a workaround, not a real solution as that would have to be offered by Apple in a Mac OS X update.