omap pm : _enable_preprogram should not be __init ?

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

 



Hi list,

Launching program using I2C after init leads to an oops with 3.9 on a
custom dm3730 based board.

Looking at the disassembly of the _enable function in omap_hwmod.o, I
noticed the call to _enable_preprogram was a direct branch to an
adress in the .text section in the middle of another function. Looking
for _enable_preprogram, it was at the right offset, but in the
.init.text section, so I guess this is why it works fine during the
boot, and oops once init is started

I recompiled the kernel with the attached patch and the oops is gone.
Is that the right ting to do ?

Jean-Philippe François
[    8.413635] Unable to handle kernel paging request at virtual address 000b0012
[    8.421264] pgd = cf968000
[    8.424102] [000b0012] *pgd=8fb06831, *pte=00000000, *ppte=00000000
[    8.430725] Internal error: Oops: 17 [#1] PREEMPT ARM
[    8.436065] Modules linked in:
[    8.439270] CPU: 0    Not tainted  (3.9.0 #2)
[    8.443878] PC is at _enable_preprogram+0x1c/0x24
[    8.448852] LR is at omap_hwmod_enable+0x34/0x60
[    8.453735] pc : [<c04e408c>]    lr : [<c001cb80>]    psr: 80000093
[    8.453735] sp : cf95de08  ip : 00002de5  fp : bec33d4c
[    8.465820] r10: 00000000  r9 : 00000002  r8 : b6dd2c78
[    8.471343] r7 : 00000004  r6 : 00000000  r5 : a0000013  r4 : cf95c000
[    8.478210] r3 : 00000000  r2 : b6dd2c7c  r1 : 00000000  r0 : 000b0012
[    8.485107] Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
[    8.492706] Control: 10c5387d  Table: 8f968019  DAC: 00000015
[    8.498779] Process otpcmd (pid: 607, stack limit = 0xcf95c230)
[    8.505004] Stack: (0xcf95de08 to 0xcf95e000)
[    8.509613] de00:                   00000001 cf91f840 00000000 c001d6fc 00000002 cf91f840
[    8.518249] de20: cf8f7e10 c001de54 cf8f7e10 c001de78 c001de68 c01d5e80 00000000 cf8f7e10
[    8.526855] de40: cf8f7e10 c01d5f28 cf8f7e10 c0530d30 00000000 c01d6f28 00000000 c0088664
[    8.535491] de60: b6ea1000 cfb05284 cf95c000 00000001 cf95c000 60000013 00000001 cf95dee4
[    8.544128] de80: cf870050 c01d7308 cf870010 cf870050 00000001 c0278b14 c0526f28 00000000
[    8.552734] dea0: cf870050 ffff8e18 00000001 cf95dee4 00000000 c0274f7c cf870050 00000001
[    8.561370] dec0: cf95dee4 cf1d8484 000000e0 c0276464 00000008 cf9c0000 00000007 c0276980
[    8.570007] dee0: cf9c0000 00000064 00000008 cf1d8404 cf1d8400 c01cc05c 0000270a cf1d8504
[    8.578613] df00: 00000023 cf1d8484 00000007 c01cc670 00000bdd 00000001 00000000 cf449e60
[    8.587249] df20: cf1dde70 cf1d8400 bec33d18 cf1d8504 c0246f00 00000003 cf95c000 00000000
[    8.595886] df40: bec33d4c c01cd078 00000003 cf1d8504 00000081 c01cbcb8 bec33d18 00000003
[    8.604492] df60: bec33d18 c00a9034 00002000 c00a9c68 cf92fe00 00000003 c0246f00 cf92fe00
[    8.613128] df80: 00000000 c00a9cb0 00000003 00000000 00008e70 00000000 b6f17000 00000036
[    8.621765] dfa0: c000e484 c000e300 00008e70 00000000 00000003 c0246f00 bec33d18 bec33d18
[    8.630371] dfc0: 00008e70 00000000 b6f17000 00000036 00000000 00000000 b6f6d000 bec33d4c
[    8.639007] dfe0: b6ea1bd0 bec33d0c 00008c9c b6ea1bdc 60000010 00000003 00000000 00000000
[    8.647644] [<c001cb80>] (omap_hwmod_enable+0x34/0x60) from [<c001d6fc>] (_omap_device_enable_hwmods+0x20/0x34)
[    8.658294] [<c001d6fc>] (_omap_device_enable_hwmods+0x20/0x34) from [<c001de54>] (omap_device_enable+0x3c/0x50)
[    8.669036] [<c001de54>] (omap_device_enable+0x3c/0x50) from [<c001de78>] (_od_runtime_resume+0x10/0x1c)
[    8.679046] [<c001de78>] (_od_runtime_resume+0x10/0x1c) from [<c01d5e80>] (__rpm_callback+0x54/0x98)
[    8.688690] [<c01d5e80>] (__rpm_callback+0x54/0x98) from [<c01d5f28>] (rpm_callback+0x64/0x7c)
[    8.697784] [<c01d5f28>] (rpm_callback+0x64/0x7c) from [<c01d6f28>] (rpm_resume+0x434/0x554)
[    8.706665] [<c01d6f28>] (rpm_resume+0x434/0x554) from [<c01d7308>] (__pm_runtime_resume+0x48/0x74)
[    8.716217] [<c01d7308>] (__pm_runtime_resume+0x48/0x74) from [<c0278b14>] (omap_i2c_xfer+0x28/0xe8)
[    8.725860] [<c0278b14>] (omap_i2c_xfer+0x28/0xe8) from [<c0274f7c>] (__i2c_transfer+0x3c/0x78)
[    8.735046] [<c0274f7c>] (__i2c_transfer+0x3c/0x78) from [<c0276464>] (i2c_transfer+0x6c/0xc0)
[    8.744140] [<c0276464>] (i2c_transfer+0x6c/0xc0) from [<c0276980>] (i2c_master_send+0x38/0x48)
[    8.753326] [<c0276980>] (i2c_master_send+0x38/0x48) from [<c01cc05c>] (sha204p_send_command+0x60/0x9c)
[    8.763244] [<c01cc05c>] (sha204p_send_command+0x60/0x9c) from [<c01cc670>] (sha204c_send_and_receive+0x5c/0x1e0)
[    8.774078] [<c01cc670>] (sha204c_send_and_receive+0x5c/0x1e0) from [<c01cd078>] (sha204m_read+0x94/0xa0)
[    8.784179] [<c01cd078>] (sha204m_read+0x94/0xa0) from [<c01cbcb8>] (otp_do_read+0x50/0xa4)
[    8.792999] [<c01cbcb8>] (otp_do_read+0x50/0xa4) from [<c00a9034>] (vfs_ioctl+0x24/0x40)
[    8.801544] [<c00a9034>] (vfs_ioctl+0x24/0x40) from [<c00a9c68>] (do_vfs_ioctl+0x1b0/0x1c0)
[    8.810363] [<c00a9c68>] (do_vfs_ioctl+0x1b0/0x1c0) from [<c00a9cb0>] (sys_ioctl+0x38/0x54)
[    8.819152] [<c00a9cb0>] (sys_ioctl+0x38/0x54) from [<c000e300>] (ret_fast_syscall+0x0/0x30)
[    8.828063] Code: e1a08002 ea000009 e598003c e592c05c (e7904003) 

Attachment: omap_hwmod_fix
Description: Binary data


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux