Gpio exporting oopses sometimes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linux and Alexandre,

>From time to time (probability of 5% around), the following script triggers an
Oops on my platform on v4.3 kernel. Is this something you have already seen ?
	ssh mio "echo 504 > /sys/class/gpio/export"
	ssh mio "echo out > /sys/class/gpio/gpio504/direction"
	ssh mio "echo 1 > /sys/class/gpio/gpio504/value"

The faulting line is :
rj@belgarion:~/mio_linux/kernel$ arm-linux-gnueabi-addr2line -i -e vmlinux 0xc0232ff4
/home/rj/mio_linux/kernel/drivers/gpio/gpiolib-sysfs.c:608 (discriminator 1)

Which in my kernel translates to :
	if (chip->names && chip->names[offset])

The Oops:
[   55.608907] Unable to handle kernel paging request at virtual address 03020120
[   55.616932] pgd = c30ec000
[   55.620567] [03020120] *pgd=00000000
[   55.624468] Internal error: Oops: f5 [#1] PREEMPT ARM
[   55.628020] Modules linked in:
[   55.631339] CPU: 0 PID: 978 Comm: sh Tainted: G        W       4.3.0+ #1245
[   55.637844] Hardware name: MIO A701
[   55.641094] task: c33247e0 ti: c30de000 task.ti: c30de000
[   55.644417] PC is at gpiod_export+0x264/0x3b8
[   55.647683] LR is at gpiod_export+0x210/0x3b8
[   55.650899] pc : [<c0232ff4>]    lr : [<c0232fa0>]    psr: 20000013
[   55.650899] sp : c30dfe20  ip : c30dfe20  fp : c30dfe54
[   55.660400] r10: 00000051  r9 : c30dff80  r8 : c3b98910
[   55.663591] r7 : 00000001  r6 : c32f96e0  r5 : 00000000  r4 : c3b9e980
[   55.669847] r3 : 00000018  r2 : 00000008  r1 : 03020100  r0 : c32f96e4
[   55.676130] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[   55.682444] Control: 0000397f  Table: a30ec000  DAC: 00000051
[   55.688845] Process sh (pid: 978, stack limit = 0xc30de198)
[   55.695262] Stack: (0xc30dfe20 to 0xc30e0000)
[   55.698520] fe20: c30dfe54 c30dfe30 c023124c c022e7a4 00000004 00000000 c3b9e980 b6fce000
[   55.704974] fe40: c33ea60c c30dff80 c30dfe7c c30dfe58 c02331d0 c0232d9c 000000d0 000001f8
[   55.711444] fe60: c30dfea4 c32f91a0 00000004 c32f91a0 c30dfe8c c30dfe80 c028b4d0 c0233154
[   55.717922] fe80: c30dfea4 c30dfe90 c014dba4 c028b4b4 c014db58 c33ea600 c30dfedc c30dfea8
[   55.724400] fea0: c014d4d8 c014db64 00000000 00000000 c30dfefc c33e39a0 c30dff80 b6fce000
[   55.730886] fec0: c30dff80 c000a728 c30de000 00020000 c30dff4c c30dfee0 c00e501c c014d3a0
[   55.737386] fee0: c30dff80 c000a728 c30dff0c c30dfef8 c0040700 c0099df8 00000000 00000001
[   55.743895] ff00: c30dff24 c30dff10 c004c5b0 c00406d0 c30c9d6c 00000004 c30dff3c c30dff28
[   55.750414] ff20: c004c6a8 c004c570 c33e39a0 c33e39a0 00000004 b6fce000 c30dff80 c000a728
[   55.756944] ff40: c30dff7c c30dff50 c00e5650 c00e4ff4 00000003 c0103a38 c30dff7c c33e39a0
[   55.763477] ff60: c33e39a0 00000004 b6fce000 c000a728 c30dffa4 c30dff80 c00e5eb8 c00e55ac
[   55.770026] ff80: 00000000 00000000 b6ed4658 00000004 b6fce000 00000004 00000000 c30dffa8
[   55.776617] ffa0: c000a560 c00e5e70 b6ed4658 00000004 00000001 b6fce000 00000004 00000000
[   55.783225] ffc0: b6ed4658 00000004 b6fce000 00000004 00000004 000ad16c ffffffff 00000000
[   55.789863] ffe0: 00000004 bec9e5e8 b6e270a8 b6e6c1cc 60000010 00000001 00000000 00000000
[   55.796633] (gpiod_export) from export_store (/drivers/gpio/gpiolib-sysfs.c:475)
[   55.803423] (export_store) from class_attr_store (/drivers/base/class.c:46)
[   55.810275] (class_attr_store) from sysfs_kf_write (/fs/sysfs/file.c:131)
[   55.817176] (sysfs_kf_write) from kernfs_fop_write (/fs/kernfs/file.c:316)
[   55.824143] (kernfs_fop_write) from __vfs_write (/fs/read_write.c:489)
[   55.831115] (__vfs_write) from vfs_write (/include/linux/fs.h:1215 /include/linux/fsnotify.h:215 /fs/read_write.c:540)
[   55.838107] (vfs_write) from SyS_write (/fs/read_write.c:586 /fs/read_write.c:577)
[   55.845096] (SyS_write) from ret_fast_syscall (/arch/arm/kernel/entry-common.S:62)
[ 55.852074] Code: e0822402 e0822802 e0832082 0a00003c (e7913102)
All code
========
   0:	e0822402 	add	r2, r2, r2, lsl #8
   4:	e0822802 	add	r2, r2, r2, lsl #16
   8:	e0832082 	add	r2, r3, r2, lsl #1
   c:	0a00003c 	beq	0x104
  10:*	e7913102 	ldr	r3, [r1, r2, lsl #2]		<-- trapping instruction

Code starting with the faulting instruction
===========================================
   0:	e7913102 	ldr	r3, [r1, r2, lsl #2]
[   55.859591] ---[ end trace 8ef5b92cfa7b4ed3 ]---
[   77.502907] random: nonblocking pool is initialized

Cheers.

-- 
Robert
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux