All of lore.kernel.org
 help / color / mirror / Atom feed
* 4.4.1 regression from 4.1.x: Soekris net5501 crash in IRQ after mfgpt timer initialization
@ 2016-02-02 14:21 Nix
  2016-02-02 14:40 ` Thomas Gleixner
  0 siblings, 1 reply; 5+ messages in thread
From: Nix @ 2016-02-02 14:21 UTC (permalink / raw)
  To: Andres Salomon, arnd, Thomas Gleixner; +Cc: linux-kernel

[Cc:ed Thomas on the vague hope that maybe this is osmething to do with
 the IRQ subsystem in general, though I doubt it, since only the one
 machine is crashing for me: it's probably the CS5531's interactions
 with said subsystem at fault.]

So I just upgraded from 4.1 to 4.4.1, secure in the knowledge that some
disaster would overtake me. And, indeed, my Soekris net5501 firewall no
longer boots, with this oops (full log and .config below):

[    1.589543] cs5535-clockevt: Registering MFGPT timer as a clock event, using IRQ 7
[    1.604921] BUG: unable to handle kernel NULL pointer dereference at   (null)
[    1.604929] IP: [<  (null)>]   (null)
[    1.604936] *pde = 00000000
[    1.604945] Oops: 0000 [#1]
[    1.604960] CPU: 0 PID: 1 Comm: swapper Not tainted 4.4.1+ #1
[    1.604969] task: df44c000 ti: df436000 task.ti: df436000
[    1.604978] EIP: 0060:[<00000000>] EFLAGS: 00010093 CPU: 0
[    1.604985] EIP is at 0x0
[    1.604993] EAX: c048d760 EBX: df406540 ECX: 00000000 EDX: 0000620c
[    1.605002] ESI: 00000007 EDI: c048d720 EBP: df409fbc ESP: df409fb8
[    1.605011]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[    1.605019] CR0: 8005003b CR2: 00000000 CR3: 004d5000 CR4: 00000090
[    1.605022] Stack:
[    1.605044]  c02cf141 df409fdc c013f40d 00000000 00000001 00000000 df406540 df406550
[    1.605066]  c0140f94 df409fe8 c013f4d3 df406540 df409ff8 c0141005 df40bf70 df406540
[    1.605074]  df40bf78 c0102c9b
[    1.605077] Call Trace:
[    1.605101]  [<c02cf141>] ? mfgpt_tick+0x6e/0x77
[    1.605127]  [<c013f40d>] handle_irq_event_percpu+0x26/0xcf
[    1.605141]  [<c0140f94>] ? handle_simple_irq+0x46/0x46
[    1.605157]  [<c013f4d3>] handle_irq_event+0x1d/0x29
[    1.605170]  [<c0141005>] handle_level_irq+0x71/0x95
[    1.605187]  [<c0102c9b>] handle_irq+0x44/0x56
[    1.605204]  <IRQ>
[    1.605206]  [<c0102a29>] do_IRQ+0x32/0x99
[    1.605228]  [<c039c1a9>] common_interrupt+0x29/0x30
[    1.605246]  [<c014007b>] ? __setup_irq+0x1ff/0x3b6
[    1.605263]  [<c0125c3b>] ? __do_softirq+0x53/0x154
[    1.605278]  [<c0125be8>] ? _local_bh_enable+0x3a/0x3a
[    1.605292]  [<c0102c51>] do_softirq_own_stack+0x1c/0x22
[    1.605309]  <IRQ>
[    1.605311]  [<c0125e56>] irq_exit+0x31/0x67
[    1.605323]  [<c0102a7d>] do_IRQ+0x86/0x99
[    1.605339]  [<c039c1a9>] common_interrupt+0x29/0x30
[    1.605362]  [<c013007b>] ? try_to_grab_pending+0x38/0xec
[    1.605378]  [<c013e0a9>] ? console_unlock+0x211/0x39b
[    1.605394]  [<c013e4e7>] vprintk_emit+0x2b4/0x2be
[    1.605410]  [<c04b618c>] ? init_hrt_clocksource+0xa4/0xa4
[    1.605426]  [<c013e5f2>] vprintk_default+0x12/0x14
[    1.605446]  [<c0164cd6>] printk+0x11/0x13
[    1.605462]  [<c04b625a>] cs5535_mfgpt_init+0xce/0xf1
[    1.605480]  [<c049fa9a>] do_one_initcall+0xce/0x13e
[    1.605496]  [<c0133407>] ? parse_args+0x1bd/0x281
[    1.605514]  [<c049fbc3>] ? kernel_init_freeable+0xb9/0x156
[    1.605531]  [<c049fbe3>] kernel_init_freeable+0xd9/0x156
[    1.605555]  [<c0398a35>] kernel_init+0x8/0xb5
[    1.605571]  [<c039ba28>] ret_from_kernel_thread+0x20/0x34
[    1.605585]  [<c0398a2d>] ? rest_init+0x59/0x59
[    1.605598] Code:  Bad EIP value.
[    1.605610] EIP: [<00000000>] 0x0 SS:ESP 0068:df409fb8
[    1.605615] CR2: 0000000000000000
[    1.605647] ---[ end trace 24cdf30ee51cea99 ]---
[    1.605654] Kernel panic - not syncing: Fatal exception in interrupt
[    1.605659] Kernel Offset: disabled
[    1.614882] Rebooting in 5 seconds..

As far as I can tell, it's not actually crashing *in*
handle_irq_event_percpu(): at least, piling printk()s in there shows
nothing, and piling printk()s in mfgpt_tick() shows successful
completion: that's clearly residue from a previous frame. I'm not sure
*where* it's crashing at this point. In particular, cs5535_mfgpt_init()
only calls platform_driver_register(): it never calls printk(), but both
are shown as non-?. So I am somewhat at a loss with this one so far: the
stacktrace looks more or less impossible, even quite a long way up. I
guess I'll be reduced to bisection :(

I'm using a GCC 4.9.4 prerelease (dated 20151031) which has built
multiple (4.1) kernels perfectly happily before now and has built 4.4.1
on two other machines without visible problem.

Full boot log:

POST: 012345689bcefghips1234ajklnopqr,,,tvwxy








comBIOS ver. 1.33  20070103  Copyright (C) 2000-2007 Soekris Engineering.

net5501

                                         CPU Geode LX 500 Mhz 0000 Mbyte Memory0512

Pri Mas  SanDisk SDCFH2-002G             LBA Xlt 992-64-63  2001 Mbyte

Slot   Vend Dev  ClassRev Cmd  Stat CL LT HT  Base1    Base2   Int 
-------------------------------------------------------------------
0:01:2 1022 2082 10100000 0006 0220 08 00 00 A0000000 00000000 10
0:06:0 1106 3053 02000096 0117 0210 08 40 00 0000E101 A0004000 11
0:07:0 1106 3053 02000096 0117 0210 08 40 00 0000E201 A0004100 05
0:08:0 1106 3053 02000096 0117 0210 08 40 00 0000E301 A0004200 09
0:09:0 1106 3053 02000096 0117 0210 08 40 00 0000E401 A0004300 12
0:14:0 104C AC23 06040002 0107 0210 08 40 01 00000000 00000000 
0:20:0 1022 2090 06010003 0009 02A0 08 40 80 00006001 00006101 
0:20:2 1022 209A 01018001 0005 02A0 08 00 00 00000000 00000000 
0:21:0 1022 2094 0C031002 0006 0230 08 00 80 A0005000 00000000 15
0:21:1 1022 2095 0C032002 0006 0230 08 00 00 A0006000 00000000 15
1:00:0 1106 3053 02000096 0117 0210 08 40 00 0000D001 A4000000 10
1:01:0 1106 3053 02000096 0117 0210 08 40 00 0000D101 A4000100 07
1:02:0 1106 3053 02000096 0117 0210 08 40 00 0000D201 A4000200 10
1:03:0 1106 3053 02000096 0117 0210 08 40 00 0000D301 A4000300 07

   Seconds to automatic boot.   Press Ctrl-P for entering Monitor. 5 4 3 2 1

LILO 22.8 Loading Linux..........................................
BIOS data check successful
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 4.4.1+ (compiler@fold) (gcc version 4.9.4 20151031 (prerelease) (GCC) ) #1 Mon Feb 1 21:28:02 GMT 2016
[    0.000000] x86/fpu: Legacy x87 FPU detected.
[    0.000000] x86/fpu: Using 'lazy' FPU context switches.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000fff00000-0x00000000ffffffff] reserved
[    0.000000] Notice: NX (Execute Disable) protection missing in CPU!
[    0.000000] e820: last_pfn = 0x20000 max_arch_pfn = 0x100000
[    0.000000] 512MB LOWMEM available.
[    0.000000]   mapped low ram: 0 - 20000000
[    0.000000]   low ram: 0 - 20000000
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   Normal   [mem 0x0000000001000000-0x000000001fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x000000000009efff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000001fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000001fffffff]
[    0.000000] Using APIC driver default
[    0.000000] No local APIC present or hardware disabled
[    0.000000] APIC: disable apic facility
[    0.000000] APIC: switched to apic NOOP
[    0.000000] e820: [mem 0x20000000-0xffefffff] available for PCI devices
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129950
[    0.000000] Kernel command line: auto BOOT_IMAGE=Linux console=ttyS0,19200 root=/dev/sda1
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Initializing CPU#0
[    0.000000] Memory: 515252K/523896K available (2675K kernel code, 236K rwdata, 784K rodata, 204K init, 152K bss, 8644K reserved, 0K cma-reserved)
[    0.000000] virtual kernel memory layout:
[    0.000000]     fixmap  : 0xfffa4000 - 0xfffff000   ( 364 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xfffa2000   ( 503 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]       .init : 0xc049f000 - 0xc04d2000   ( 204 kB)
[    0.000000]       .data : 0xc039d0dd - 0xc049d3a0   (1024 kB)
[    0.000000]       .text : 0xc0100000 - 0xc039d0dd   (2676 kB)
[    0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:2304 nr_irqs:32 16
[    0.000000] console [ttyS0] enabled
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 499.935 MHz processor
[    0.030021] Calibrating delay loop (skipped), value calculated using timer frequency.. 999.87 BogoMIPS (lpj=4999350)
[    0.050011] pid_max: default: 32768 minimum: 101
[    0.060108] Security Framework initialized
[    0.070011] Yama: becoming mindful.
[    0.080075] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.090016] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.100960] Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0
[    0.110015] Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0, 1GB 0
[    0.120006] CPU: Geode(TM) Integrated Processor by AMD PCS (family: 0x5, model: 0xa, stepping: 0x2)
[    0.160485] Performance Events: no PMU driver, software events only.
[    0.181985] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.190983] NET: Registered protocol family 16
[    0.200816] clocksource: pit: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1601818034827 ns
[    0.221666] PCI: PCI BIOS revision 2.01 entry at 0xfac61, last bus=1
[    0.230011] PCI: Using configuration type 1 for base access
[    0.251043] SCSI subsystem initialized
[    0.260374] usbcore: registered new interface driver usbfs
[    0.270084] usbcore: registered new interface driver hub
[    0.280075] usbcore: registered new device driver usb
[    0.290073] PCI: Probing PCI hardware
[    0.300178] PCI host bridge to bus 0000:00
[    0.310028] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    0.320021] pci_bus 0000:00: root bus resource [mem 0x00000000-0xffffffff]
[    0.330019] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.344855] pci 0000:00:14.0: [Firmware Bug]: reg 0x10: invalid BAR (can't size)
[    0.350140] pci 0000:00:14.0: [Firmware Bug]: reg 0x14: invalid BAR (can't size)
[    0.360137] pci 0000:00:14.0: [Firmware Bug]: reg 0x18: invalid BAR (can't size)
[    0.370561] pci 0000:00:14.0: [Firmware Bug]: CS5536 ISA bridge quirk: reg 0x10: [io  0x6000-0x6007]
[    0.380041] pci 0000:00:14.0: [Firmware Bug]: CS5536 ISA bridge quirk: reg 0x14: [io  0x6100-0x61ff]
[    0.390040] pci 0000:00:14.0: [Firmware Bug]: CS5536 ISA bridge quirk: reg 0x18: [io  0x6200-0x623f]
[    0.400018] pci 0000:00:14.0: CS5536 ISA bridge bug detected (incorrect header); workaround applied
[    0.411470] pci 0000:00:14.2: legacy IDE quirk: reg 0x10: [io  0x01f0-0x01f7]
[    0.420020] pci 0000:00:14.2: legacy IDE quirk: reg 0x14: [io  0x03f6]
[    0.430020] pci 0000:00:14.2: legacy IDE quirk: reg 0x18: [io  0x0170-0x0177]
[    0.440019] pci 0000:00:14.2: legacy IDE quirk: reg 0x1c: [io  0x0376]
[    0.455912] pci 0000:00:0e.0: PCI bridge to [bus 01]
[    0.471037] clocksource: Switched to clocksource pit
[    0.481129] pci 0000:00:0e.0: PCI bridge to [bus 01]
[    0.490900] pci 0000:00:0e.0:   bridge window [io  0xd000-0xdfff]
[    0.507443] pci 0000:00:0e.0:   bridge window [mem 0xa4000000-0xa7ffffff]
[    0.518404] NET: Registered protocol family 2
[    0.525498] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.537839] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.546504] TCP: Hash tables configured (established 4096 bind 4096)
[    0.554659] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.559654] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.577409] NET: Registered protocol family 1
[    0.584012] RPC: Registered named UNIX socket transport module.
[    0.589515] RPC: Registered udp transport module.
[    0.607743] RPC: Registered tcp transport module.
[    0.615973] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.625577] platform rtc_cmos: registered platform RTC device (no PNP device found)
[    0.632097] net5501: system is recognized as "net5501"
[    0.643164] NatSemi SCx200 Driver
[    0.653885] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.681511] VFS: Disk quotas dquot_6.6.0
[    0.695427] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.712496] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    0.726865] io scheduler noop registered
[    0.730394] io scheduler deadline registered (default)
[    0.741623] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[    0.760568] serial8250: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    0.777714] AMD Geode RNG detected
[    0.788149] Hangcheck: starting hangcheck timer 0.9.1 (tick is 180 seconds, margin is 60 seconds).
[    0.799482] loop: module loaded
[    0.819304] zram: Added device: zram0
[    0.831708] cs5535-gpio cs5535-gpio: reserved resource region [io  0x6100-0x61ff]
[    0.846822] cs5535-mfgpt cs5535-mfgpt: reserved resource region [io  0x6200-0x623f]
[    0.852737] cs5535-mfgpt cs5535-mfgpt: 8 MFGPT timers available
[    0.868417] cs5535-mfd 0000:00:14.0: 5 devices registered.
[    0.873308] scsi host0: pata_cs5536
[    0.884764] scsi host1: pata_cs5536
[    0.896004] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0xe000 irq 14
[    0.907756] ata2: DUMMY
[    0.914082] via_rhine: v1.10-LK1.5.1 2010-10-09 Written by Donald Becker
[    0.930437] via-rhine 0000:00:06.0 eth0: VIA Rhine III (Management Adapter) at 0xe0806000, 00:00:24:cb:c6:a0, IRQ 11
[    0.944243] via-rhine 0000:00:06.0 eth0: MII PHY found at address 1, status 0x786d advertising 05e1 Link cde1
[    0.959829] via-rhine 0000:00:07.0 eth1: VIA Rhine III (Management Adapter) at 0xe0808100, 00:00:24:cb:c6:a1, IRQ 5
[    0.973136] via-rhine 0000:00:07.0 eth1: MII PHY found at address 1, status 0x786d advertising 05e1 Link 41e1
[    0.988673] via-rhine 0000:00:08.0 eth2: VIA Rhine III (Management Adapter) at 0xe080a200, 00:00:24:cb:c6:a2, IRQ 9
[    0.991962] via-rhine 0000:00:08.0 eth2: MII PHY found at address 1, status 0x786d advertising 05e1 Link 41e1
[    1.007506] via-rhine 0000:00:09.0 eth3: VIA Rhine III (Management Adapter) at 0xe080c300, 00:00:24:cb:c6:a3, IRQ 12
[    1.011316] via-rhine 0000:00:09.0 eth3: MII PHY found at address 1, status 0x786d advertising 05e1 Link 4de1
[    1.026894] via-rhine 0000:01:00.0 eth4: VIA Rhine III (Management Adapter) at 0xe080e000, 00:00:24:d1:2a:3c, IRQ 10
[    1.030756] via-rhine 0000:01:00.0 eth4: MII PHY found at address 1, status 0x786d advertising 05e1 Link 41e1
[    1.046264] via-rhine 0000:01:01.0 eth5: VIA Rhine III (Management Adapter) at 0xe0810100, 00:00:24:d1:2a:3d, IRQ 7
[    1.059596] via-rhine 0000:01:01.0 eth5: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000
[    1.085152] via-rhine 0000:01:02.0 eth6: VIA Rhine III (Management Adapter) at 0xe0812200, 00:00:24:d1:2a:3e, IRQ 10
[    1.099043] via-rhine 0000:01:02.0 eth6: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000
[    1.124619] via-rhine 0000:01:03.0 eth7: VIA Rhine III (Management Adapter) at 0xe0814300, 00:00:24:d1:2a:3f, IRQ 7
[    1.137985] via-rhine 0000:01:03.0 eth7: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000
[    1.147536] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.156697] ehci-pci: EHCI PCI platform driver
[    1.163626] ehci-pci 0000:00:15.1: EHCI Host Controller
[    1.174996] ehci-pci 0000:00:15.1: new USB bus registered, assigned bus number 1
[    1.179558] ehci-pci 0000:00:15.1: irq 15, io mem 0xa0006000
[    1.194116] ata1.00: CFA: SanDisk SDCFH2-002G, HDX 4.32, max MWDMA2
[    1.201689] ata1.00: 4001760 sectors, multi 0: LBA 
[    1.211659] ata1.00: configured for MWDMA2
[    1.226730] scsi 0:0:0:0: Direct-Access     ATA      SanDisk SDCFH2-0 4.32 PQ: 0 ANSI: 5
[    1.236218] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    1.248475] sd 0:0:0:0: [sda] 4001760 512-byte logical blocks: (2.04 GB/1.90 GiB)
[    1.253612] sd 0:0:0:0: [sda] Write Protect is off
[    1.262487] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    1.278280] ehci-pci 0000:00:15.1: USB 2.0 started, EHCI 1.00
[    1.282831]  sda: sda1
[    1.298031] hub 1-0:1.0: USB hub found
[    1.300545] hub 1-0:1.0: 4 ports detected
[    1.315501] sd 0:0:0:0: [sda] Attached SCSI removable disk
[    1.329063] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.346132] ohci-pci: OHCI PCI platform driver
[    1.353054] ohci-pci 0000:00:15.0: OHCI PCI host controller
[    1.366511] ohci-pci 0000:00:15.0: new USB bus registered, assigned bus number 2
[    1.370883] ohci-pci 0000:00:15.0: irq 15, io mem 0xa0005000
[    1.471911] hub 2-0:1.0: USB hub found
[    1.484464] hub 2-0:1.0: 4 ports detected
[    1.499249] usbcore: registered new interface driver cdc_acm
[    1.513175] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    1.521364] usbcore: registered new interface driver usb-storage
[    1.537361] i2c /dev entries driver
[    1.548682] cs5535-smb cs5535-smb: SCx200 device 'CS5535 ACB0' registered
[    1.549450] pc87360: Device 0x09 not activated
[    1.567772] cs5535-mfgpt cs5535-mfgpt: registered timer 0
[    1.570980] Geode LX AES 0000:00:01.2: GEODE AES engine enabled.
[    1.587153] cs5535-mfgpt cs5535-mfgpt: registered timer 1
[    1.589543] cs5535-clockevt: Registering MFGPT timer as a clock event, using IRQ 7
[    1.604921] BUG: unable to handle kernel NULL pointer dereference at   (null)
[    1.604929] IP: [<  (null)>]   (null)
[    1.604936] *pde = 00000000 
[    1.604945] Oops: 0000 [#1] 
[    1.604960] CPU: 0 PID: 1 Comm: swapper Not tainted 4.4.1+ #1
[    1.604969] task: df44c000 ti: df436000 task.ti: df436000
[    1.604978] EIP: 0060:[<00000000>] EFLAGS: 00010093 CPU: 0
[    1.604985] EIP is at 0x0
[    1.604993] EAX: c048d760 EBX: df406540 ECX: 00000000 EDX: 0000620c
[    1.605002] ESI: 00000007 EDI: c048d720 EBP: df409fbc ESP: df409fb8
[    1.605011]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[    1.605019] CR0: 8005003b CR2: 00000000 CR3: 004d5000 CR4: 00000090
[    1.605022] Stack:
[    1.605044]  c02cf141 df409fdc c013f40d 00000000 00000001 00000000 df406540 df406550
[    1.605066]  c0140f94 df409fe8 c013f4d3 df406540 df409ff8 c0141005 df40bf70 df406540
[    1.605074]  df40bf78 c0102c9b
[    1.605077] Call Trace:
[    1.605101]  [<c02cf141>] ? mfgpt_tick+0x6e/0x77
[    1.605127]  [<c013f40d>] handle_irq_event_percpu+0x26/0xcf
[    1.605141]  [<c0140f94>] ? handle_simple_irq+0x46/0x46
[    1.605157]  [<c013f4d3>] handle_irq_event+0x1d/0x29
[    1.605170]  [<c0141005>] handle_level_irq+0x71/0x95
[    1.605187]  [<c0102c9b>] handle_irq+0x44/0x56
[    1.605204]  <IRQ> 
[    1.605206]  [<c0102a29>] do_IRQ+0x32/0x99
[    1.605228]  [<c039c1a9>] common_interrupt+0x29/0x30
[    1.605246]  [<c014007b>] ? __setup_irq+0x1ff/0x3b6
[    1.605263]  [<c0125c3b>] ? __do_softirq+0x53/0x154
[    1.605278]  [<c0125be8>] ? _local_bh_enable+0x3a/0x3a
[    1.605292]  [<c0102c51>] do_softirq_own_stack+0x1c/0x22
[    1.605309]  <IRQ> 
[    1.605311]  [<c0125e56>] irq_exit+0x31/0x67
[    1.605323]  [<c0102a7d>] do_IRQ+0x86/0x99
[    1.605339]  [<c039c1a9>] common_interrupt+0x29/0x30
[    1.605362]  [<c013007b>] ? try_to_grab_pending+0x38/0xec
[    1.605378]  [<c013e0a9>] ? console_unlock+0x211/0x39b
[    1.605394]  [<c013e4e7>] vprintk_emit+0x2b4/0x2be
[    1.605410]  [<c04b618c>] ? init_hrt_clocksource+0xa4/0xa4
[    1.605426]  [<c013e5f2>] vprintk_default+0x12/0x14
[    1.605446]  [<c0164cd6>] printk+0x11/0x13
[    1.605462]  [<c04b625a>] cs5535_mfgpt_init+0xce/0xf1
[    1.605480]  [<c049fa9a>] do_one_initcall+0xce/0x13e
[    1.605496]  [<c0133407>] ? parse_args+0x1bd/0x281
[    1.605514]  [<c049fbc3>] ? kernel_init_freeable+0xb9/0x156
[    1.605531]  [<c049fbe3>] kernel_init_freeable+0xd9/0x156
[    1.605555]  [<c0398a35>] kernel_init+0x8/0xb5
[    1.605571]  [<c039ba28>] ret_from_kernel_thread+0x20/0x34
[    1.605585]  [<c0398a2d>] ? rest_init+0x59/0x59
[    1.605598] Code:  Bad EIP value.
[    1.605610] EIP: [<00000000>] 0x0 SS:ESP 0068:df409fb8
[    1.605615] CR2: 0000000000000000
[    1.605647] ---[ end trace 24cdf30ee51cea99 ]---
[    1.605654] Kernel panic - not syncing: Fatal exception in interrupt
[    1.605659] Kernel Offset: disabled
[    1.614882] Rebooting in 5 seconds..

.config:

CONFIG_X86_32=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_OUTPUT_FORMAT="elf32-i386"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_X86_32_LAZY_GS=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_PGTABLE_LEVELS=2
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_KERNEL_GZIP=y
CONFIG_DEFAULT_HOSTNAME="fold"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_FHANDLE=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TICK_CPU_ACCOUNTING=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_TINY_RCU=y
CONFIG_SRCU=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_RELAY=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BPF=y
CONFIG_EXPERT=y
CONFIG_UID16=y
CONFIG_MULTIUSER=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_ADVISE_SYSCALLS=y
CONFIG_PCI_QUIRKS=y
CONFIG_MEMBARRIER=y
CONFIG_EMBEDDED=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_EVENTS=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
CONFIG_SLUB=y
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
CONFIG_JUMP_LABEL=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_KPROBES_ON_FTRACE=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_STACKPROTECTOR_NONE=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_COPY_THREAD_TLS=y
CONFIG_CLONE_BACKWARDS=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_OLD_SIGACTION=y
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_MSDOS_PARTITION=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_DEFAULT_DEADLINE=y
CONFIG_DEFAULT_IOSCHED="deadline"
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
CONFIG_INLINE_WRITE_UNLOCK=y
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_ZONE_DMA=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_MPPARSE=y
CONFIG_IOSF_MBI=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_NO_BOOTMEM=y
CONFIG_MGEODE_LX=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=5
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_USE_3DNOW=y
CONFIG_X86_TSC=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_CYRIX_32=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_CPU_SUP_TRANSMETA_32=y
CONFIG_CPU_SUP_UMC_32=y
CONFIG_NR_CPUS=1
CONFIG_PREEMPT_NONE=y
CONFIG_UP_LATE_INIT=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
CONFIG_NOHIGHMEM=y
CONFIG_VMSPLIT_3G=y
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ILLEGAL_POINTER_VALUE=0
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_NEED_PER_CPU_KM=y
CONFIG_ZSMALLOC=y
CONFIG_GENERIC_EARLY_IOREMAP=y
CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
CONFIG_X86_RESERVE_LOW=4
CONFIG_SECCOMP=y
CONFIG_HZ_100=y
CONFIG_HZ=100
CONFIG_SCHED_HRTICK=y
CONFIG_PHYSICAL_START=0x100000
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_PCI=y
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_MSI=y
CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_ISA_DMA_API=y
CONFIG_SCx200=y
CONFIG_SCx200HR_TIMER=y
CONFIG_NET5501=y
CONFIG_AMD_NB=y
CONFIG_BINFMT_ELF=y
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
CONFIG_BINFMT_SCRIPT=y
CONFIG_HAVE_AOUT=y
CONFIG_BINFMT_MISC=y
CONFIG_COREDUMP=y
CONFIG_HAVE_ATOMIC_IOMAP=y
CONFIG_PMC_ATOM=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_UNIX_DIAG=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_NET_IP_TUNNEL=y
CONFIG_SYN_COOKIES=y
CONFIG_INET_TUNNEL=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
CONFIG_INET_UDP_DIAG=y
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
CONFIG_IPV6=y
CONFIG_IPV6_SIT=y
CONFIG_IPV6_NDISC_NODETYPE=y
CONFIG_NETFILTER=y
CONFIG_NETFILTER_ADVANCED=y
CONFIG_NETFILTER_NETLINK=y
CONFIG_NETFILTER_NETLINK_ACCT=y
CONFIG_NF_CONNTRACK=y
CONFIG_NF_LOG_COMMON=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_TIMEOUT=y
CONFIG_NF_CT_PROTO_DCCP=y
CONFIG_NF_CT_PROTO_UDPLITE=y
CONFIG_NF_CONNTRACK_FTP=y
CONFIG_NF_CONNTRACK_IRC=y
CONFIG_NF_CONNTRACK_BROADCAST=y
CONFIG_NF_CONNTRACK_SNMP=y
CONFIG_NF_CONNTRACK_SIP=y
CONFIG_NF_CT_NETLINK=y
CONFIG_NF_CT_NETLINK_TIMEOUT=y
CONFIG_NF_NAT=y
CONFIG_NF_NAT_NEEDED=y
CONFIG_NF_NAT_PROTO_DCCP=y
CONFIG_NF_NAT_PROTO_UDPLITE=y
CONFIG_NF_NAT_FTP=y
CONFIG_NF_NAT_IRC=y
CONFIG_NF_NAT_SIP=y
CONFIG_NF_NAT_REDIRECT=y
CONFIG_NETFILTER_XTABLES=y
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
CONFIG_NETFILTER_XT_TARGET_DSCP=y
CONFIG_NETFILTER_XT_TARGET_LOG=y
CONFIG_NETFILTER_XT_NAT=y
CONFIG_NETFILTER_XT_TARGET_REDIRECT=y
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
CONFIG_NETFILTER_XT_MATCH_DSCP=y
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y
CONFIG_NETFILTER_XT_MATCH_HELPER=y
CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
CONFIG_NETFILTER_XT_MATCH_LIMIT=y
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
CONFIG_NETFILTER_XT_MATCH_NFACCT=y
CONFIG_NETFILTER_XT_MATCH_OWNER=y
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
CONFIG_NETFILTER_XT_MATCH_QUOTA=y
CONFIG_NETFILTER_XT_MATCH_STATE=y
CONFIG_NF_DEFRAG_IPV4=y
CONFIG_NF_CONNTRACK_IPV4=y
CONFIG_NF_LOG_IPV4=y
CONFIG_NF_REJECT_IPV4=y
CONFIG_NF_NAT_IPV4=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_MANGLE=y
CONFIG_NF_DEFRAG_IPV6=y
CONFIG_NF_CONNTRACK_IPV6=y
CONFIG_NF_REJECT_IPV6=y
CONFIG_NF_LOG_IPV6=y
CONFIG_IP6_NF_IPTABLES=y
CONFIG_IP6_NF_FILTER=y
CONFIG_IP6_NF_TARGET_REJECT=y
CONFIG_IP6_NF_MANGLE=y
CONFIG_HAVE_NET_DSA=y
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_FQ_CODEL=y
CONFIG_NET_SCH_FIFO=y
CONFIG_NETLINK_DIAG=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_FIB_RULES=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
CONFIG_BLK_DEV=y
CONFIG_ZRAM=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
CONFIG_BLK_DEV_CRYPTOLOOP=y
CONFIG_CS5535_MFGPT=y
CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
CONFIG_CS5535_CLOCK_EVENT_SRC=y
CONFIG_HAVE_IDE=y
CONFIG_SCSI_MOD=y
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_ATA=y
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_SFF=y
CONFIG_ATA_BMDMA=y
CONFIG_PATA_CS5536=y
CONFIG_NETDEVICES=y
CONFIG_MII=y
CONFIG_NET_CORE=y
CONFIG_DUMMY=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_VIA=y
CONFIG_VIA_RHINE=y
CONFIG_VIA_RHINE_MMIO=y
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_TTY=y
CONFIG_UNIX98_PTYS=y
CONFIG_SERIAL_EARLYCON=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_NR_UARTS=1
CONFIG_SERIAL_8250_RUNTIME_UARTS=1
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_GEODE=y
CONFIG_HANGCHECK_TIMER=y
CONFIG_DEVPORT=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
CONFIG_SCx200_ACB=y
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_DEVRES=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_CS5535=y
CONFIG_HWMON=y
CONFIG_HWMON_VID=y
CONFIG_SENSORS_PC87360=y
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
CONFIG_GEODE_WDT=y
CONFIG_SSB_POSSIBLE=y
CONFIG_BCMA_POSSIBLE=y
CONFIG_MFD_CORE=y
CONFIG_MFD_CS5535=y
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=y
CONFIG_USB_DEFAULT_PERSIST=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_PCI=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_PCI=y
CONFIG_USB_ACM=y
CONFIG_USB_STORAGE=y
CONFIG_EDAC_ATOMIC_SCRUB=y
CONFIG_EDAC_SUPPORT=y
CONFIG_RTC_LIB=y
CONFIG_STAGING=y
CONFIG_CLKSRC_I8253=y
CONFIG_CLKEVT_I8253=y
CONFIG_CLKBLD_I8253=y
CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_JBD2=y
CONFIG_FS_MBCACHE=y
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_QUOTA=y
CONFIG_PRINT_QUOTA_WARNING=y
CONFIG_QUOTA_TREE=y
CONFIG_QFMT_V2=y
CONFIG_QUOTACTL=y
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_KERNFS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_TMPFS_XATTR=y
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_SWAP=y
CONFIG_GRACE_PERIOD=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_SWAP=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_CODEPAGE_852=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_15=y
CONFIG_NLS_UTF8=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
CONFIG_STRIP_ASM_SYMS=y
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_KERNEL=y
CONFIG_HAVE_DEBUG_KMEMLEAK=y
CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
CONFIG_HAVE_ARCH_KMEMCHECK=y
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_PANIC_ON_OOPS=y
CONFIG_PANIC_ON_OOPS_VALUE=1
CONFIG_PANIC_TIMEOUT=5
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACING_SUPPORT=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_STRICT_DEVMEM=y
CONFIG_DEBUG_RODATA=y
CONFIG_DOUBLEFAULT=y
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
CONFIG_DEFAULT_IO_DELAY_TYPE=0
CONFIG_SECURITY_DMESG_RESTRICT=y
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_PATH=y
CONFIG_SECURITY_YAMA=y
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_PCOMP2=y
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
CONFIG_CRYPTO_NULL2=y
CONFIG_CRYPTO_WORKQUEUE=y
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_GEODE=y
CONFIG_HAVE_KVM=y
CONFIG_BITREVERSE=y
CONFIG_RATIONAL=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_NET_UTILS=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_IO=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
CONFIG_CRC16=y
CONFIG_CRC32=y
CONFIG_CRC32_SLICEBY8=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
CONFIG_DQL=y
CONFIG_GLOB=y
CONFIG_NLATTR=y
CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
CONFIG_ARCH_HAS_SG_CHAIN=y
CONFIG_ARCH_HAS_MMIO_FLUSH=y

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: 4.4.1 regression from 4.1.x: Soekris net5501 crash in IRQ after mfgpt timer initialization
  2016-02-02 14:21 4.4.1 regression from 4.1.x: Soekris net5501 crash in IRQ after mfgpt timer initialization Nix
@ 2016-02-02 14:40 ` Thomas Gleixner
  2016-02-02 15:03   ` Nix
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Gleixner @ 2016-02-02 14:40 UTC (permalink / raw)
  To: Nix; +Cc: Andres Salomon, arnd, linux-kernel

On Tue, 2 Feb 2016, Nix wrote:

> [Cc:ed Thomas on the vague hope that maybe this is osmething to do with
>  the IRQ subsystem in general, though I doubt it, since only the one
>  machine is crashing for me: it's probably the CS5531's interactions
>  with said subsystem at fault.]

Kinda. That driver does the following:

       setup the irq in CS5531

       request the interrupt to install the handler

       register the clockevents device

> [    1.589543] cs5535-clockevt: Registering MFGPT timer as a clock event, using IRQ 7
> [    1.604921] BUG: unable to handle kernel NULL pointer dereference at   (null)

> [    1.605101]  [<c02cf141>] ? mfgpt_tick+0x6e/0x77
...
> [    1.605339]  [<c039c1a9>] common_interrupt+0x29/0x30
...
> [    1.605394]  [<c013e4e7>] vprintk_emit+0x2b4/0x2be
> [    1.605426]  [<c013e5f2>] vprintk_default+0x12/0x14
> [    1.605446]  [<c0164cd6>] printk+0x11/0x13
> [    1.605462]  [<c04b625a>] cs5535_mfgpt_init+0xce/0xf1

So the interrupt hits before the clockevent device is registered and the event
handler is installed. So mfgpt_tick() will happily call a null pointer.

The patch below should fix^Wwork around the issue.

Thanks,

	tglx

8<----------------

--- a/drivers/clocksource/cs5535-clockevt.c
+++ b/drivers/clocksource/cs5535-clockevt.c
@@ -117,7 +117,8 @@ static irqreturn_t mfgpt_tick(int irq, void *dev_id)
 	/* Turn off the clock (and clear the event) */
 	disable_timer(cs5535_event_clock);
 
-	if (clockevent_state_shutdown(&cs5535_clockevent))
+	if (clockevent_state_shutdown(&cs5535_clockevent) ||
+	    clockevent_state_detached(&cs5535_clockevent))
 		return IRQ_HANDLED;
 
 	/* Clear the counter */

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: 4.4.1 regression from 4.1.x: Soekris net5501 crash in IRQ after mfgpt timer initialization
  2016-02-02 14:40 ` Thomas Gleixner
@ 2016-02-02 15:03   ` Nix
  2016-02-02 15:51     ` Thomas Gleixner
  0 siblings, 1 reply; 5+ messages in thread
From: Nix @ 2016-02-02 15:03 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: Andres Salomon, arnd, linux-kernel

On 2 Feb 2016, Thomas Gleixner said:

> On Tue, 2 Feb 2016, Nix wrote:
>
>> [Cc:ed Thomas on the vague hope that maybe this is osmething to do with
>>  the IRQ subsystem in general, though I doubt it, since only the one
>>  machine is crashing for me: it's probably the CS5531's interactions
>>  with said subsystem at fault.]
>
> Kinda. That driver does the following:
>
>        setup the irq in CS5531
>
>        request the interrupt to install the handler
>
>        register the clockevents device

It seems like it should do those in the opposite order, really, or at
the very least do the IRQ setup last!

> So the interrupt hits before the clockevent device is registered and the event
> handler is installed. So mfgpt_tick() will happily call a null pointer.
>
> The patch below should fix^Wwork around the issue.

The fairly trivial code motion below also seems to work, and may be more
like an actual fix, though I'm a bit horrified that it's this simple. I
may well have moved too much and unknowingly violated some invariant.

(Note: the actual code motion was of course to move the IRQ registration
down, but git chose to depict it as the opposite, somewhat unclearly.)

Done under my work address because all this firewall rebooting is
stopping me from getting work done:

>From 4ba04a48573c8a2136533556a3fbef7de288913f Mon Sep 17 00:00:00 2001
From: Nick Alcock <nick.alcock@oracle.com>
Date: Tue, 2 Feb 2016 14:57:56 +0000
Subject: [PATCH] cs5535-clockevt: set up the MFGPT only after registering the
 IRQ

This prevents a race whereby the IRQ arrives before the clockevent
handler is installed.

Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
Inspired-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/clocksource/cs5535-clockevt.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/clocksource/cs5535-clockevt.c b/drivers/clocksource/cs5535-clockevt.c
index 9a7e37c..5737e17 100644
--- a/drivers/clocksource/cs5535-clockevt.c
+++ b/drivers/clocksource/cs5535-clockevt.c
@@ -152,6 +152,18 @@ static int __init cs5535_mfgpt_init(void)
 	}
 	cs5535_event_clock = timer;
 
+	/* Set the clock scale and enable the event mode for CMP2 */
+	val = MFGPT_SCALE | (3 << 8);
+
+	cs5535_mfgpt_write(cs5535_event_clock, MFGPT_REG_SETUP, val);
+
+	/* Set up the clock event */
+	printk(KERN_INFO DRV_NAME
+		": Registering MFGPT timer as a clock event, using IRQ %d\n",
+		timer_irq);
+	clockevents_config_and_register(&cs5535_clockevent, MFGPT_HZ,
+					0xF, 0xFFFE);
+
 	/* Set up the IRQ on the MFGPT side */
 	if (cs5535_mfgpt_setup_irq(timer, MFGPT_CMP2, &timer_irq)) {
 		printk(KERN_ERR DRV_NAME ": Could not set up IRQ %d\n",
@@ -166,18 +178,6 @@ static int __init cs5535_mfgpt_init(void)
 		goto err_irq;
 	}
 
-	/* Set the clock scale and enable the event mode for CMP2 */
-	val = MFGPT_SCALE | (3 << 8);
-
-	cs5535_mfgpt_write(cs5535_event_clock, MFGPT_REG_SETUP, val);
-
-	/* Set up the clock event */
-	printk(KERN_INFO DRV_NAME
-		": Registering MFGPT timer as a clock event, using IRQ %d\n",
-		timer_irq);
-	clockevents_config_and_register(&cs5535_clockevent, MFGPT_HZ,
-					0xF, 0xFFFE);
-
 	return 0;
 
 err_irq:
-- 
2.7.0.198.g6dd47b6

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: 4.4.1 regression from 4.1.x: Soekris net5501 crash in IRQ after mfgpt timer initialization
  2016-02-02 15:03   ` Nix
@ 2016-02-02 15:51     ` Thomas Gleixner
  2016-02-02 16:07       ` Nix
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Gleixner @ 2016-02-02 15:51 UTC (permalink / raw)
  To: Nix; +Cc: Andres Salomon, arnd, linux-kernel

On Tue, 2 Feb 2016, Nix wrote:

> On 2 Feb 2016, Thomas Gleixner said:
> 
> > On Tue, 2 Feb 2016, Nix wrote:
> >
> >> [Cc:ed Thomas on the vague hope that maybe this is osmething to do with
> >>  the IRQ subsystem in general, though I doubt it, since only the one
> >>  machine is crashing for me: it's probably the CS5531's interactions
> >>  with said subsystem at fault.]
> >
> > Kinda. That driver does the following:
> >
> >        setup the irq in CS5531
> >
> >        request the interrupt to install the handler
> >
> >        register the clockevents device
> 
> It seems like it should do those in the opposite order, really, or at
> the very least do the IRQ setup last!

Yes.
 
> > So the interrupt hits before the clockevent device is registered and the event
> > handler is installed. So mfgpt_tick() will happily call a null pointer.
> >
> > The patch below should fix^Wwork around the issue.
> 
> The fairly trivial code motion below also seems to work, and may be more
> like an actual fix, though I'm a bit horrified that it's this simple. I
> may well have moved too much and unknowingly violated some invariant.

I was lazy and did not do this, because it wreckages the error pathes. So I
went for the workaround in the hope that the authors of that stuff will take
care :)

Thanks,

	tglx

 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: 4.4.1 regression from 4.1.x: Soekris net5501 crash in IRQ after mfgpt timer initialization
  2016-02-02 15:51     ` Thomas Gleixner
@ 2016-02-02 16:07       ` Nix
  0 siblings, 0 replies; 5+ messages in thread
From: Nix @ 2016-02-02 16:07 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: Andres Salomon, arnd, linux-kernel

On 2 Feb 2016, Thomas Gleixner verbalised:

> On Tue, 2 Feb 2016, Nix wrote:
>> The fairly trivial code motion below also seems to work, and may be more
>> like an actual fix, though I'm a bit horrified that it's this simple. I
>> may well have moved too much and unknowingly violated some invariant.
>
> I was lazy and did not do this, because it wreckages the error pathes. So I
> went for the workaround in the hope that the authors of that stuff will take
> care :)

Oh true.

As far as I can tell, getting this right requires a function that
reverses the effect of clockevents_config_and_register(), which does not
appear to exist yet :( everything else appears more or less
reversible...

-- 
NULL && (void)

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-02-02 16:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-02 14:21 4.4.1 regression from 4.1.x: Soekris net5501 crash in IRQ after mfgpt timer initialization Nix
2016-02-02 14:40 ` Thomas Gleixner
2016-02-02 15:03   ` Nix
2016-02-02 15:51     ` Thomas Gleixner
2016-02-02 16:07       ` Nix

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.