Skip to content

fiq_enable=0: Unable to handle kernel NULL pointer dereference #622

@notro

Description

@notro

I get NULL pointer dereference when trying to run USB without FIQ.
I want this because I will try to use dwc_otg with ARCH_BCM2835 (no FIQ) and the vanilla kernel.

Is fiq_enable=0 still supported?

Latest rpi-update kernel

$ sudo rpi-update && sudo reboot
$ cat /proc/version
Linux version 3.12.22+ (dc4@dc4-arm-01) (gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08) ) #690 PREEMPT Mon Jun 16 13:25:46 BST 2014
$ cat /boot/.firmware_revision
bfd37013c701f10c6df585346ee1d3d3bdf88b3b

Added to /boot/cmdline.txt

dwc_otg.fiq_enable=0 dwc_otg.fiq_fsm_enable=0

Boot messages

The system is going down for reboot NOW!(ttyAMA0) (Wed Jun 18 14:03:00 2014):
[  679.694676] reboot: Restarting system
Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.12.22+ (dc4@dc4-arm-01) (gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08) ) #690 PREEMPT Mon Jun 16 13:25:46 BST 2014
[    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine: BCM2708
[    0.000000] cma: CMA: reserved 8 MiB at 1b800000
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 114688
[    0.000000] free_area_init_node: node 0, pgdat c05fcdf0, node_mem_map c06ae000
[    0.000000]   Normal zone: 896 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 114688 pages, LIFO batch:31
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 113792
[    0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708.boardrev=0xe bcm2708.serial=0x4939788f smsc95xx.macaddr=B8:27:EB:39:78:8F sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000  earlyprintk loglevel=8 verbose debug dwc_otg.fiq_enable=0 dwc_otg.fiq_fsm_enable=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait dyndbg="module pinctrl_bcm2708 +p; file drivers/gpio/gpiolib.c +p; file drivers/of/platform.c +p; file kernel/irq/irqdomain.c +p; file kernel/irq/manage.c +p; file kernel/resource.c +p; file pinctrl/core.c +p; module pinctrl +p; module pinmux +p;"
[    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] Memory: 439664K/458752K available (4376K kernel code, 238K rwdata, 1340K rodata, 143K init, 701K bss, 19088K reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xdc800000 - 0xff000000   ( 552 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xdc000000   ( 448 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc059d54c   (5718 kB)
[    0.000000]       .init : 0xc059e000 - 0xc05c1ee4   ( 144 kB)
[    0.000000]       .data : 0xc05c2000 - 0xc05fd900   ( 239 kB)
[    0.000000]        .bss : 0xc05fd90c - 0xc06ad0f8   ( 702 kB)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:394
[    0.000000] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 4294967ms
[    0.000000] Switching to timer-based delay loop
[    0.000000] Console: colour dummy device 80x30
[    0.000000] console [tty1] enabled
[    0.001497] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=10000)
[    0.001559] pid_max: default: 32768 minimum: 301
[    0.002056] Mount-cache hash table entries: 512
[    0.002898] Initializing cgroup subsys memory
[    0.003008] Initializing cgroup subsys devices
[    0.003048] Initializing cgroup subsys freezer
[    0.003081] Initializing cgroup subsys blkio
[    0.003224] CPU: Testing write buffer coherency: ok
[    0.003684] Setting up static identity map for 0xc04275f0 - 0xc042764c
[    0.005589] devtmpfs: initialized
[    0.022451] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
[    0.024048] NET: Registered protocol family 16
[    0.029715] DMA: preallocated 4096 KiB pool for atomic coherent allocations
[    0.030547] cpuidle: using governor ladder
[    0.030599] cpuidle: using governor menu
[    0.031331] bcm2708.uart_clock = 0
[    0.033159] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
[    0.033216] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.033254] mailbox: Broadcom VideoCore Mailbox driver
[    0.033355] bcm2708_vcio: mailbox at f200b880
[    0.033461] bcm_power: Broadcom power driver
[    0.033498] bcm_power_open() -> 0
[    0.033523] bcm_power_request(0, 8)
[    0.534248] bcm_mailbox_read -> 00000080, 0
[    0.534288] bcm_power_request -> 0
[    0.534521] Serial: AMBA PL011 UART driver
[    0.534667] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83, base_baud = 0) is a PL011 rev3
[    0.957268] console [ttyAMA0] enabled
[    0.984328] bio: create slab <bio-0> at 0
[    0.989834] SCSI subsystem initialized
[    0.993832] usbcore: registered new interface driver usbfs
[    0.999531] usbcore: registered new interface driver hub
[    1.005095] usbcore: registered new device driver usb
[    1.011991] Switched to clocksource stc
[    1.016241] FS-Cache: Loaded
[    1.019394] CacheFiles: Loaded
[    1.035163] NET: Registered protocol family 2
[    1.040651] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    1.048059] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    1.054630] TCP: Hash tables configured (established 4096 bind 4096)
[    1.061082] TCP: reno registered
[    1.064383] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    1.070254] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    1.077008] NET: Registered protocol family 1
[    1.081941] RPC: Registered named UNIX socket transport module.
[    1.087998] RPC: Registered udp transport module.
[    1.092756] RPC: Registered tcp transport module.
[    1.097476] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.105125] bcm2708_dma: DMA manager at f2007000
[    1.109866] bcm2708_gpio: bcm2708_gpio_probe c05cfed0
[    1.115435] vc-mem: phys_addr:0x00000000 mem_base=0x1ec00000 mem_size:0x20000000(512 MiB)
[    1.125045] audit: initializing netlink socket (disabled)
[    1.130530] type=2000 audit(0.940:1): initialized
[    1.297193] VFS: Disk quotas dquot_6.5.2
[    1.301466] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.310479] FS-Cache: Netfs 'nfs' registered for caching
[    1.317431] NFS: Registering the id_resolver key type
[    1.322733] Key type id_resolver registered
[    1.326940] Key type id_legacy registered
[    1.331702] msgmni has been set to 874
[    1.337518] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    1.345369] io scheduler noop registered
[    1.349322] io scheduler deadline registered (default)
[    1.354919] io scheduler cfq registered
[    1.360091] BCM2708FB: allocated DMA memory 5bc00000
[    1.365275] BCM2708FB: allocated DMA channel 0 @ f2007000
[    1.389175] Console: switching to colour frame buffer device 82x26
[    1.399318] uart-pl011 dev:f1: no DMA platform data
[    1.405764] kgdb: Registered I/O driver kgdboc.
[    1.412436] vc-cma: Videocore CMA driver
[    1.417704] vc-cma: vc_cma_base      = 0x00000000
[    1.423731] vc-cma: vc_cma_size      = 0x00000000 (0 MiB)
[    1.430379] vc-cma: vc_cma_initial   = 0x00000000 (0 MiB)
[    1.446491] brd: module loaded
[    1.456152] loop: module loaded
[    1.460809] vchiq: vchiq_init_state: slot_zero = 0xdb800000, is_master = 0
[    1.469969] Loading iSCSI transport class v2.0-870.
[    1.477449] usbcore: registered new interface driver smsc95xx
[    1.485003] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    1.692272] Core Release: 2.80a
[    1.696681] Setting default values for core params
[    1.702758] Finished setting default values for core params
[    1.909591] Using Buffer DMA mode
[    1.914190] Periodic Transfer Interrupt Enhancement - disabled
[    1.921271] Multiprocessor Interrupt Enhancement - disabled
[    1.928110] OTG VER PARAM: 0, OTG VER FLAG: 0
[    1.933769] Dedicated Tx FIFOs mode
[    1.938759] dwc_otg: Microframe scheduler enabled
[    1.944842] dwc_otg bcm2708_usb: DWC OTG Controller
[    1.951009] dwc_otg bcm2708_usb: new USB bus registered, assigned bus number 1
[    1.959601] dwc_otg bcm2708_usb: irq 75, io mem 0x00000000
[    1.966505] Init: Port Power? op_state=1
[    1.971718] Init: Power Port (0)
[    1.976516] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.984729] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.993369] usb usb1: Product: DWC OTG Controller
[    1.999409] usb usb1: Manufacturer: Linux 3.12.22+ dwc_otg_hcd
[    2.006593] usb usb1: SerialNumber: bcm2708_usb
[    2.013318] hub 1-0:1.0: USB hub found
[    2.018468] hub 1-0:1.0: 1 port detected
[    2.024188] dwc_otg: FIQ disabled
[    2.028767] dwc_otg: NAK holdoff enabled
[    2.033990] dwc_otg: FIQ split-transaction FSM disabled
[    2.040439] Module dwc_common_port init
[    2.045962] usbcore: registered new interface driver usb-storage
[    2.053665] mousedev: PS/2 mouse device common for all mice
[    2.061136] bcm2835-cpufreq: min=700000 max=700000 cur=700000
[    2.068314] bcm2835-cpufreq: switching to governor powersave
[    2.075305] bcm2835-cpufreq: switching to governor powersave
[    2.082404] sdhci: Secure Digital Host Controller Interface driver
[    2.089805] sdhci: Copyright(c) Pierre Ossman
[    2.095456] sdhci: Enable low-latency mode
[    2.142063] mmc0: SDHCI controller on BCM2708_Arasan [platform] using platform's DMA
[    2.152553] mmc0: BCM2708 SDHC host at 0x20300000 DMA 2 IRQ 77
[    2.159757] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.166940] ledtrig-cpu: registered to indicate activity on CPUs
[    2.176529] hidraw: raw HID events driver (C) Jiri Kosina
[    2.190847] usbcore: registered new interface driver usbhid
[    2.197895] usbhid: USB HID core driver
[    2.207795] TCP: cubic registered
[    2.214611] Initializing XFRM netlink socket
[    2.222510] Indeed it is in host mode hprt0 = 00021501
[    2.229147] NET: Registered protocol family 17
[    2.245322] Key type dns_resolver registered
[    2.263593] registered taskstats version 1
[    2.283211] Waiting for root device /dev/mmcblk0p2...
[    2.334190] mmc0: read SD Status register (SSR) after 3 attempts
[    2.350643] mmc0: new high speed SDHC card at address e624
[    2.358248] mmcblk0: mmc0:e624 SU16G 14.8 GiB
[    2.366847]  mmcblk0: p1 p2
[    2.413228] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.424326] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    2.432963] devtmpfs: mounted
[    2.437805] Freeing unused kernel memory: 140K (c059e000 - c05c1000)
[    2.462174] usb 1-1: new high-speed USB device number 2 using dwc_otg
[    2.470287] Indeed it is in host mode hprt0 = 00001101
[    2.682560] usb 1-1: New USB device found, idVendor=0424, idProduct=9514
[    2.690829] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.702165] hub 1-1:1.0: USB hub found
[    2.707589] hub 1-1:1.0: 5 ports detected
[    2.992375] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[    3.102793] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[    3.111329] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    3.143515] smsc95xx v1.0.4
[    3.217504] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:39:78:8f
[    3.342322] usb 1-1.2: new low-speed USB device number 4 using dwc_otg
[    3.350967] Unable to handle kernel NULL pointer dereference at virtual address 00000038
[    3.362192] pgd = db270000
[    3.366404] [00000038] *pgd=1b245831, *pte=00000000, *ppte=00000000
[    3.374255] Internal error: Oops: 17 [#1] PREEMPT ARM

Entering kdb (current=0xdb229900, pid 94) Oops: (null)
due to oops @ 0xc02fec18

dCPU: 0 PID: 94 Comm: mountkernfs.sh Not tainted 3.12.22+ #690
dtask: db229900 ti: db240000 task.ti: db240000
PC is at dwc_otg_hcd_select_transactions+0x188/0x35c
LR is at dwc_otg_hcd_get_frame_number+0x18/0x20
pc : [<c02fec18>]    lr : [<c02fea88>]    psr: 20000193
sp : db241d48  ip : 00001948  fp : db1d6328
r10: c05f17fa  r9 : db105400  r8 : db105460
r7 : db105414  r6 : db1d6300  r5 : c05f17fe  r4 : 00000010
r3 : 00001fff  r2 : 00000000  r1 : 00000000  r0 : 00000008
Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 00c5387d  Table: 1b270008  DAC: 00000015
dCPU: 0 PID: 94 Comm: mountkernfs.sh Not tainted 3.12.22+ #690
[<c0013ec0>] (unwind_backtrace+0x0/0xf0) from [<c0011284>] (show_stack+0x10/0x14)
[<c0011284>] (show_stack+0x10/0x14) from [<c007e738>] (kdb_dumpregs+0x28/0x50)
[<c007e738>] (kdb_dumpregs+0x28/0x50) from [<c00809a8>] (kdb_main_loop+0x3c0/0x6c0)
[<c00809a8>] (kdb_main_loop+0x3c0/0x6c0) from [<c00830a8>] (kdb_stub+0x154/0x380)
[<c00830a8>] (kdb_stub+0x154/0x380) from [<c007a264>] (kgdb_handle_exception+0x340/0x6f0)
[<c007a264>] (kgdb_handle_exception+0x340/0x6f0) from [<c0013620>] (kgdb_notify+0x24/0x50)
[<c0013620>] (kgdb_notify+0x24/0x50) from [<c0425604>] (notifier_call_chain+0x44/0x84)
[<c0425604>] (notifier_call_chain+0x44/0x84) from [<c042567c>] (__atomic_notifier_call_chain+0x38/0x4c)
[<c042567c>] (__atomic_notifier_call_chain+0x38/0x4c) from [<c04256a8>] (atomic_notifier_call_chain+0x18/0x20)
[<c04256a8>] (atomic_notifier_call_chain+0x18/0x20) from [<c04256e8>] (notify_die+0x38/0x44)
[<c04256e8>] (notify_die+0x38/0x44) from [<c001134c>] (die+0xc4/0x378)
[<c001134c>] (die+0xc4/0x378) from [<c041c7d0>] (__do_kernel_fault.part.9+0x54/0x74)
[<c041c7d0>] (__do_kernel_fault.part.9+0x54/0x74) from [<c0425318>] (do_page_fault+0x1f0/0x3f0)
[<c0425318>] (do_page_fault+0x1f0/0x3f0) from [<c000835c>] (do_DataAbort+0x34/0x98)
[<c000835c>] (do_DataAbort+0x34/0x98) from [<c0423b18>] (__dabt_svc+0x38/0x60)
Exception stack(0xdb241d00 to 0xdb241d48)
1d00: 00000008 00000000 00000000 00001fff 00000010 c05f17fe db1d6300 db105414
1d20: db105460 db105400 c05f17fa db1d6328 00001948 db241d48 c02fea88 c02fec18
1d40: 20000193 ffffffff
[<c0423b18>] (__dabt_svc+0x38/0x60) from [<c02fec18>] (dwc_otg_hcd_select_transactions+0x188/0x35c)
[<c02fec18>] (dwc_otg_hcd_select_transactions+0x188/0x35c) from [<c0300db0>] (release_channel+0x174/0x218)
[<c0300db0>] (release_channel+0x174/0x218) from [<c030237c>] (handle_hc_nak_intr+0x6c/0x1c0)
[<c030237c>] (handle_hc_nak_intr+0x6c/0x1c0) from [<c03038b0>] (dwc_otg_hcd_handle_hc_n_intr+0x668/0x6a4)
[<c03038b0>] (dwc_otg_hcd_handle_hc_n_intr+0x668/0x6a4) from [<c0303984>] (dwc_otg_hcd_handle_hc_intr+0x98/0xd8)
[<c0303984>] (dwc_otg_hcd_handle_hc_intr+0x98/0xd8) from [<c0303bec>] (dwc_otg_hcd_handle_intr+0x228/0x2e4)
[<c0303bec>] (dwc_otg_hcd_handle_intr+0x228/0x2e4) from [<c0300840>] (dwc_otg_hcd_irq+0xc/0x18)
[<c0300840>] (dwc_otg_hcd_irq+0xc/0x18) from [<c02d73b0>] (usb_hcd_irq+0x2c/0x54)
[<c02d73b0>] (usb_hcd_irq+0x2c/0x54) from [<c0052f60>] (handle_irq_event_percpu+0x50/0x1d0)
[<c0052f60>] (handle_irq_event_percpu+0x50/0x1d0) from [<c0053134>] (handle_irq_event+0x54/0x84)
[<c0053134>] (handle_irq_event+0x54/0x84) from [<c00556ec>] (handle_level_irq+0x98/0x108)
[<c00556ec>] (handle_level_irq+0x98/0x108) from [<c005285c>] (generic_handle_irq+0x28/0x40)
[<c005285c>] (generic_handle_irq+0x28/0x40) from [<c000f06c>] (handle_IRQ+0x30/0x84)
[<c000f06c>] (handle_IRQ+0x30/0x84) from [<c0423b74>] (__irq_svc+0x34/0xc8)
[<c0423b74>] (__irq_svc+0x34/0xc8) from [<c00083f4>] (do_PrefetchAbort+0x34/0x98)
[<c00083f4>] (do_PrefetchAbort+0x34/0x98) from [<c0423f74>] (ret_from_exception+0x0/0x10)
Exception stack(0xdb241fb0 to 0xdb241ff8)
1fa0:                                     01ae5564 01adb18d 00000005 000252b4
1fc0: 01adb192 0000000c 01ae5564 00000005 bea840b4 01adb18d 01ae5464 01ae5508
1fe0: 0002514c bea84080 0000d06c b6f3e168 80000010 ffffffff
more>
kdb>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions