Bluetooth occurs: Internal error: Oops: 207 [#1] SMP ARM

Open
#3,494 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
c, linux, raspberry-pi

Research direction

Start by reproducing the failure with repeated Bluetooth keyboard and trackpad reconnects, then inspect the dmesg trace around the hci_rx_work entry point and __wake_up_common. Compare the failure against the reported 4.19.97-v7l+ kernel and Bluetooth modules. Done means the NULL dereference no longer occurs during repeated connection cycles.

Written by the indexing model from the issue text.

Description

Is this the right place for my bug report?
Yes, the error starts with:
raspberrypi kernel: [ 4188.416710] Unable to handle kernel NULL pointer dereference at virtual address 00000100

Describe the bug
This error occurs when connecting with my bluetooth keyboard incl. trackpad and the Raspberry Pi 4. The error doesn't occur with every connection establishment (approximately after 50 connects and disconnects).
It affects bluetooth (hidp, rfcomm, hci ... ).

To reproduce

  • Power on the RPi bluetooth and pair/connect a bluetooth device (I'm using a keyboard with trackpad).
  • Turn the bluetooth device off, wait a few seconds and turn it on again.
  • Repeat it until the error occurs (usually within 50 attempts).

System
Copy and paste the results of the raspinfo command in to this section. Alternatively, copy and paste a pastebin link, or add answers to the following questions:

  • Which model of Raspberry Pi? e.g. Pi3B+, PiZeroW
    Pi4B 4GB

  • Which OS and version (cat /etc/rpi-issue)?
    Raspberry Pi reference 2019-09-26
    Generated using pi-gen, https://github.com/RPi-Distro/pi-gen,
    80d486687ea77d31fc3fc13cf3a2f8b464e129be, stage4

  • Which firmware version (vcgencmd version)?
    Feb 12 2020 12:36:21
    Copyright (c) 2012 Broadcom
    version c3c8dbdf147686fb0c3f32aece709d0653368810 (clean) (release) (start)

  • Which kernel version (uname -a)?
    Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020
    armv7l GNU/Linux

Logs
If applicable, add the relevant output from dmesg or similar.

Mar 8 21:48:51 raspberrypi kernel: [ 4188.416710] Unable to handle kernel NULL pointer dereference at virtual address 00000100 Mar 8 21:48:51 raspberrypi kernel: [ 4188.416732] pgd = 024205b4 Mar 8 21:48:51 raspberrypi kernel: [ 4188.416743] [00000100] *pgd=80000000004003, *pmd=00000000 Mar 8 21:48:51 raspberrypi kernel: [ 4188.416761] Internal error: Oops: 207 [#1] SMP ARM Mar 8 21:48:51 raspberrypi kernel: [ 4188.416772] Modules linked in: hidp rfcomm bnep hci_uart btbcm serdev bluetooth ecdh_generic fuse 8021q garp stp llc evdev sg snd_usb_audio snd_hwdep uvcvideo snd_usbmidi_lib snd_rawmidi snd_seq_device vc4 brcmfmac brcmutil sha256_generic drm_kms_helper v3d snd_soc_core snd_compress gpu_sched snd_pcm_dmaengine bcm2835_v4l2(C) bcm2835_codec(C) v4l2_mem2mem snd_bcm2835(C) bcm2835_mmal_vchiq(C) snd_pcm cfg80211 v4l2_common drm snd_timer raspberrypi_hwmon rfkill hwmon syscopyarea drm_panel_orientation_quirks videobuf2_dma_contig sysfillrect sysimgblt fb_sys_fops snd videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev media vc_sm_cma(C) rpivid_mem uio_pdrv_genirq uio i2c_dev ip_tables x_tables ipv6 Mar 8 21:48:51 raspberrypi kernel: [ 4188.416923] CPU: 3 PID: 10046 Comm: kworker/u9:2 Tainted: G C 4.19.97-v7l+ #1294 Mar 8 21:48:51 raspberrypi kernel: [ 4188.416934] Hardware name: BCM2835 Mar 8 21:48:51 raspberrypi kernel: [ 4188.417035] Workqueue: hci0 hci_rx_work [bluetooth] Mar 8 21:48:51 raspberrypi kernel: [ 4188.417060] PC is at __wake_up_common+0x6c/0x144 Mar 8 21:48:51 raspberrypi kernel: [ 4188.417077] LR is at _raw_spin_unlock_irqrestore+0x6c/0x70

Dominant language
C
Stars
13.2k
Forks
5.5k
Avg merge
2d 21h
Merged PRs (30d)
21

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from raspberrypi/linux

All issues in raspberrypi/linux

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.