Openmoko Bug #2279: toggling backlight very fast blocks reads of /proc/apm

Openmoko Public Trac bugs at docs.openmoko.org
Mon Sep 14 08:51:31 CEST 2009


#2279: toggling backlight very fast blocks reads of /proc/apm
-----------------------------+----------------------------------------------
 Reporter:  lindi            |          Owner:  openmoko-kernel     
     Type:  defect           |         Status:  new                 
 Priority:  normal           |      Milestone:                      
Component:  System Software  |        Version:  unspecified         
 Severity:  minor            |       Keywords:  kernel backlight DoS
 Haspatch:  0                |      Blockedby:                      
Estimated:                   |    Patchreview:                      
 Blocking:                   |   Reproducible:  always              
-----------------------------+----------------------------------------------

Comment(by lindi):

 I wrote a small program that tries to read every file in /sys:

 {{{
 #!/bin/sh
 find /sys -type f | while read f; do
     echo "==== $f"
     md5sum $f &
     pid="$!"
     for i in 0 1 2 3 4 5 6 7 8 9; do
         if ! [ -d "/proc/$pid" ]; then
             break
         fi
         sleep 0.1
     done
     if [ -d "/proc/$pid" ]; then
         echo stuck on $f
         sleep 4
     fi
 done
 }}}

 It reported that the following files can not be read when the backlight
 blinking program is running:

 /sys/devices/platform/s3c24xx_pwm.0/hdq.0/hdq/dump
 /sys/class/regulator/regulator.0/microvolts
 /sys/class/regulator/regulator.0/state
 /sys/class/regulator/regulator.1/microvolts
 /sys/class/regulator/regulator.1/state
 /sys/class/regulator/regulator.2/microvolts
 /sys/class/regulator/regulator.2/state
 /sys/class/regulator/regulator.3/microvolts
 /sys/class/regulator/regulator.3/state
 /sys/class/regulator/regulator.4/microvolts
 /sys/class/regulator/regulator.4/state
 /sys/class/regulator/regulator.5/microvolts
 /sys/class/regulator/regulator.5/state
 /sys/class/regulator/regulator.6/microvolts
 /sys/class/regulator/regulator.6/state
 /sys/class/regulator/regulator.7/microvolts
 /sys/class/regulator/regulator.7/state
 /sys/class/regulator/regulator.8/microvolts
 /sys/class/regulator/regulator.8/state
 /sys/class/regulator/regulator.9/microvolts
 /sys/class/regulator/regulator.9/state
 /sys/class/regulator/regulator.10/microvolts
 /sys/class/regulator/regulator.10/state
 /sys/class/backlight/gta02-bl/actual_brightness
 /sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-mbc/chgmode
 /sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-mbc/usb_curlim
 /sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-mbc/chg_curlim
 /sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-regltr.6/neo1973-pm-
 bt.0/microamps_requested_BT_3V2
 /sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-regltr.7/neo1973-pm-
 gps.0/microamps_requested_RF_3V
 /sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-regltr.7/neo1973-pm-
 gps.0/power_on
 /sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-regltr.9/glamo3362.0/glamo-
 mci.0/microamps_requested_SD_3V3

 After the last file the phone rebooted with watchdog and ramconsole showed
 the following kernel
 error:

 {{{
  Unable to handle kernel NULL pointer dereference at virtual address
 00000000
  pgd = c7b18000
  [00000000] *pgd=37bb1031, *pte=00000000, *ppte=00000000
  Internal error: Oops: 17 [#1] PREEMPT
  Modules linked in: fuse snd_soc_neo1973_gta02_wm8753 snd_soc_s3c24xx_i2s
 snd_soc_s3c24xx g_ether s3c2410_wdt ar6000 snd_soc_wm8753 s3cmci
 snd_soc_core snd_pcm snd_timer snd_page_alloc snd
  CPU: 0    Not tainted  (2.6.29-GTA02_lindi-andy-tracking-mokodev #17)
  PC is at s3c24xx_serial_show_clksrc+0x1c/0x30
  LR is at dev_attr_show+0x2c/0x4c
  pc : [<c019f85c>]    lr : [<c01a0408>]    psr: a0000013
  sp : c7b49ee0  ip : c7b49ef0  fp : c7b49eec
  r10: 00000000  r9 : 00001000  r8 : c7b49f78
  r7 : c03a2830  r6 : c7990ab4  r5 : c03a2680  r4 : c038bbb8
  r3 : 00000000  r2 : c7bb6000  r1 : 00001000  r0 : c7bb6000
  Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
  Control: c000717f  Table: 37b18000  DAC: 00000015
  Process md5sum (pid: 1750, stack limit = 0xc7b48268)
  Stack: (0xc7b49ee0 to 0xc7b4a000)
  9ee0: c7b49f04 c7b49ef0 c01a0408 c019f850 c038bbb8 c7bb7360 c7b49f4c
 c7b49f08
  9f00: c00f1e30 c01a03ec c02ad038 c004b2a8 c7b568f4 c7b568f4 be8605dc
 c7bb7378
  9f20: c01606d8 c7b302c0 be8605dc c7b49f78 00001000 c002f048 c7b48000
 00000000
  9f40: c7b49f74 c7b49f50 c00ad7ec c00f1d7c c7b49f74 c7b49f60 00000000
 00000000
  9f60: c7b302c0 00000003 c7b49fa4 c7b49f78 c00ad944 c00ad744 00000000
 00000000
  9f80: ffffffff 00000000 00017858 00000000 00017858 00001000 00000000
 c7b49fa8
  9fa0: c002eea0 c00ad908 00000000 00017858 00000003 be8605dc 00001000
 00000000
  9fc0: 00000000 00017858 00001000 00000003 00001000 be8618f4 00000002
 00000101
  9fe0: be8605dc be8605a0 400ad154 4010173c 60000010 00000003 00000000
 00000000
  Backtrace:
  [<c019f840>] (s3c24xx_serial_show_clksrc+0x0/0x30) from [<c01a0408>]
 (dev_attr_show+0x2c/0x4c)
  [<c01a03dc>] (dev_attr_show+0x0/0x4c) from [<c00f1e30>]
 (sysfs_read_file+0xc4/0x1c0)
   r5:c7bb7360 r4:c038bbb8
  [<c00f1d6c>] (sysfs_read_file+0x0/0x1c0) from [<c00ad7ec>]
 (vfs_read+0xb8/0x148)
  [<c00ad734>] (vfs_read+0x0/0x148) from [<c00ad944>] (sys_read+0x4c/0x7c)
   r7:00000003 r6:c7b302c0 r5:00000000 r4:00000000
  [<c00ad8f8>] (sys_read+0x0/0x7c) from [<c002eea0>]
 (ret_fast_syscall+0x0/0x2c)
   r6:00001000 r5:00017858 r4:00000000
  Code: e59030e4 e3a01a01 e513300c e1a00002 (e5933000)
  ---[ end trace 247919efb6119d22 ]---
  s3c2410-wdt s3c2410-wdt: Unexpected close, not stopping watchdog
  Flash device refused suspend due to active operation (state 0)
  Restarting system.
  arch_reset: attempting watchdog reset
 }}}

-- 
Ticket URL: <https://docs.openmoko.org/trac/ticket/2279#comment:3>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac


More information about the openmoko-kernel mailing list