Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
notro opened this issue Jun 18, 2014 · 3 comments
Closed

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

notro opened this issue Jun 18, 2014 · 3 comments

Comments

@notro
Copy link
Contributor

notro commented Jun 18, 2014

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>
@P33M
Copy link
Contributor

P33M commented Jun 18, 2014

It should work. I went through and run-tested the bare driver a while ago.

@P33M
Copy link
Contributor

P33M commented Jun 18, 2014

Does it work if you add dwc_otg.nak_holdoff=0 to /boot/cmdline.txt?

@notro
Copy link
Contributor Author

notro commented Jun 18, 2014

Does it work if you add dwc_otg.nak_holdoff=0 to /boot/cmdline.txt?

Worked fine with that, thanks.

@notro notro closed this as completed Jun 18, 2014
pfpacket pushed a commit to pfpacket/linux-rpi-rust that referenced this issue Apr 7, 2023
hw_random: depend on `RUST`, not `HAS_RUST`
popcornmix pushed a commit that referenced this issue May 24, 2023
Commit d6ae7d1 ("drm/msm/gem: Simplify vmap vs LRU tracking")
introduced a splat in the pin_pages_locked() path for buffers that
had been MADV_DONTNEED.

   ------------[ cut here ]------------
   msm_obj->madv != 0
   WARNING: CPU: 1 PID: 144 at drivers/gpu/drm/msm/msm_gem.c:230 msm_gem_pin_pages_locked+0x9c/0xd4
   Modules linked in: lzo_rle cros_ec_lid_angle cros_ec_sensors cros_ec_sensors_core venus_dec venus_enc videobuf2_dma_contig cdc_ether usbnet mii uvcvideo videobuf2_vmalloc hci_uart btqca qcom_spmi_adc5 uvc qcom_spmi_temp_alarm qcom_vadc_common cros_ec_sensorhub videobuf2_memops cros_ec_typec sx9324 sx_common typec joydev bluetooth industrialio_triggered_buffer ecdh_generic kfifo_buf ecc venus_core qcom_stats v4l2_mem2mem videobuf2_v4l2 videobuf2_common ath11k_ahb ath11k mac80211 cfg80211 fuse zram zsmalloc
   CPU: 1 PID: 144 Comm: ring0 Tainted: G        W          6.3.0-rc2-debug+ #622
   Hardware name: Google Villager (rev1+) with LTE (DT)
   pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
   pc : msm_gem_pin_pages_locked+0x9c/0xd4
   lr : msm_gem_pin_pages_locked+0x9c/0xd4
   sp : ffffffc009ffbab0
   x29: ffffffc009ffbab0 x28: ffffffee8da75008 x27: ffffff80a10274d0
   x26: ffffff8087fe3bf8 x25: ffffff8087fe3c08 x24: 0000000000000001
   x23: ffffff80891d5800 x22: ffffff809d0de480 x21: ffffff8081e5a080
   x20: 0000000000000002 x19: ffffff80a3564c00 x18: 0000000000000000
   x17: 0000000000000000 x16: 0000000000000000 x15: 00000000000a9620
   x14: 0000000000000000 x13: 2d2d2d2d2d2d2d2d x12: 2d2d2d2d5d206572
   x11: 656820747563205b x10: 2d2d2d2d2d2d2d2d x9 : ffffffee8c705dfc
   x8 : ffffffee8da75000 x7 : ffffffee8d34e6d0 x6 : 0000000000000000
   x5 : 00000000000affa8 x4 : 000000000000000d x3 : ffffffee8da75008
   x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffffff8088048040
   Call trace:
    msm_gem_pin_pages_locked+0x9c/0xd4
    get_vaddr+0xb0/0x150
    msm_gem_get_vaddr_active+0x1c/0x28
    snapshot_buf+0x90/0x10c
    msm_rd_dump_submit+0x30c/0x380
    msm_gpu_submit+0x88/0x174
    msm_job_run+0x68/0x118
    drm_sched_main+0x2b8/0x3a0
    kthread+0xf0/0x100
    ret_from_fork+0x10/0x20
   irq event stamp: 3358
   hardirqs last  enabled at (3357): [<ffffffee8c7051f4>] __up_console_sem+0x7c/0x80
   hardirqs last disabled at (3358): [<ffffffee8d3480b0>] el1_dbg+0x24/0x80
   softirqs last  enabled at (3330): [<ffffffee8c610420>] __do_softirq+0x21c/0x4bc
   softirqs last disabled at (3325): [<ffffffee8c616708>] ____do_softirq+0x18/0x24
   ---[ end trace 0000000000000000 ]---

But, as with msm_gem_get_vaddr_active(), this is a special case
because we know that the buffer won't be purged evicted until it's
fence is signaled.  We just forgot to propagate the logic get_vaddr()
to pin_pages_locked().

Fixes: d6ae7d1 ("drm/msm/gem: Simplify vmap vs LRU tracking")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Patchwork: https://patchwork.freedesktop.org/patch/532616/
Link: https://lore.kernel.org/r/20230417225504.494934-1-robdclark@gmail.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants