Re: 2.6.33-rc8-rt1 on Beagle

2010-03-01 Thread Uwe Kleine-König
Hello,

On Thu, Feb 25, 2010 at 04:36:23PM +0530, Chatterjee, Amit wrote:
 Migrated to 2.6.33-rc8-rt2 but still am facing the same issue.
 
 Regards,
 Amit
 
 -Original Message-
 From: linux-rt-users-ow...@vger.kernel.org 
 [mailto:linux-rt-users-ow...@vger.kernel.org] On Behalf Of Chatterjee, Amit
 Sent: Wednesday, February 24, 2010 5:50 PM
 To: LKML; rt-users
 Subject: 2.6.33-rc8-rt1 on Beagle
 
 Hi,
   I am facing NULL pointer deference error with beagle board. The 
 bootargs used are -
 
 setenv bootargs 'console=ttyS2,115200n8 root=/dev/mmcblk0p2 rootwait 
 rootfstype=ext3 omapfb.mode=dvi:800x600mr...@60 omapdss.def_disp=dvi 
 omapfb.vram=0:8M,1:2M,2:4M mem=216M'
 setenv bootcmd 'mmc init;fatload mmc 0 0x8020 uImage;bootm 0x8020'
 
 The crash log is as follows -
 
 Waiting for root device /dev/mmcblk0p2...
 Unable to handle kernel NULL pointer dereference at virtual address 
 pgd = c0004000
 [] *pgd=
 Internal error: Oops: 805 [#1] PREEMPT
 last sysfs file:
 Modules linked in:
 CPU: 0Not tainted  (2.6.33-rc8-rt1 #3)
 PC is at rt_spin_lock_slowlock+0x64/0x220
This corresponds to:

BUG_ON(rt_mutex_owner(lock) == current);

in rt_spin_lock_slowlock.  If you had CONFIG_BUG_VERBOSE this would have
been more obvious.

 LR is at rt_spin_lock_slowlock+0x24/0x220
 pc : [c029f85c]lr : [c029f81c]psr: 6093
 sp : cd1a1ed8  ip : cd1a1f08  fp : 0053
 r10: cd3bc664  r9 : c039c8c4  r8 : cd3bc400
 r7 : cd1a  r6 : cd3bc664  r5 : 6013  r4 : cd3bc664
 r3 :   r2 : cd3fb480  r1 :   r0 : cd1a1ed8
 Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
 Control: 10c5387d  Table: 80004019  DAC: 0017
 Process irq/83-mmc0 (pid: 355, stack limit = 0xcd1a02e8)
 Stack: (0xcd1a1ed8 to 0xcd1a2000)
 1ec0:   0001 0006
 1ee0: cd070040 c0397f48 0001 cd3fb480  0002 cd3bc664 6013
 1f00:  cd1a  c029f9f0  cd3bc600 cd0c3ef4 cd3bc664
 1f20:  cd3bc400 cd3bc664 c0213850 cd0c2000 cd0c201c cd3fb480 0017
 1f40:  cd3bc600  00018000 0001  cd3bc664 c020bb94
 1f60: cd0c3f24 c02145fc c039c880 cd3d07c0 cd1a cd3d07e4 0800 c039c8c4
 1f80: c039c8dc c00768e8 cd3d07c0 0032 cd1a1f88 cd021e58 cd1a1fbc c0076828
 1fa0: cd3d07c0     c0060ae8  
 1fc0: cd1a1fc0 cd1a1fc0 cd1a1fc8 cd1a1fc8   cd1a1fd8 cd1a1fd8
 1fe0:      c0028ec4 107fcd00 0a33ef94
 [c029f85c] (rt_spin_lock_slowlock+0x64/0x220) from [c0213850] 
 (omap_hsmmc_request+0x44/0x400)
 [c0213850] (omap_hsmmc_request+0x44/0x400) from [c020bb94] 
 (mmc_request_done+0x64/0x90)
 [c020bb94] (mmc_request_done+0x64/0x90) from [c02145fc] 
 (omap_hsmmc_irq+0x364/0x46c)
 [c02145fc] (omap_hsmmc_irq+0x364/0x46c) from [c00768e8] 
 (irq_thread+0xc0/0x208)
 [c00768e8] (irq_thread+0xc0/0x208) from [c0060ae8] (kthread+0x78/0x80)
 [c0060ae8] (kthread+0x78/0x80) from [c0028ec4] 
 (kernel_thread_exit+0x0/0x8)
 Code: e597300c e1520003 1a02 e3a03000 (e5833000)

I assume the problem is that the function omap_hsmmc_request tries to be
clever in a non-rt compatible way:

/*
 * Prevent races with the interrupt handler because of unexpected
 * interrupts, but not if we are already in interrupt context i.e.
 * retries.
 */
if (!in_interrupt()) {
spin_lock_irqsave(host-irq_lock, host-flags);

But looking at the backtrace in this context in_interrupt() would be
true in !PREEMPT_RT.

You might want to report that to the author(s) of
drivers/mmc/host/omap_hsmmc.c.

Best regards
Uwe

-- 
Pengutronix e.K.   | Uwe Kleine-König|
Industrial Linux Solutions | http://www.pengutronix.de/  |
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 2.6.33-rc8-rt1 on Beagle

2010-03-01 Thread Thomas Gleixner
On Mon, 1 Mar 2010, Uwe Kleine-König wrote:
 You might want to report that to the author(s) of
 drivers/mmc/host/omap_hsmmc.c.

FYI, thats fixed in 33-rt3 and the fix is going mainline as well.

Thanks,

tglx