public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Silamael <Silamael@coronamundi.de>
To: Andy Walls <awalls@md.metrocast.net>
Cc: linux-media@vger.kernel.org
Subject: Re: PROBLEM: 2.6.34-rc7 kernel panics "BUG: unable to handle kernel NULL pointer dereference at (null)" while channel scan running
Date: Tue, 01 Jun 2010 17:42:28 +0200	[thread overview]
Message-ID: <4C052A64.8020107@coronamundi.de> (raw)
In-Reply-To: <1275347464.2260.60.camel@localhost>

On 06/01/2010 01:11 AM, Andy Walls wrote:
> On Sun, 2010-05-30 at 12:33 +0200, Silamael wrote:
>> Kernel trace:
>> ---------------------------------------------------------------
>> [  773.280361] IP: [<f825a7ba>] saa7146_buffer_next+0x5e/0x1ed [saa7146_vv]
>> [  773.280361] *pde = 00000000
>> [  773.280361] Oops: 0000 [#1] SMP
>> [  773.280361] last sysfs file: /sys/module/nfsd/initstate
>> [  773.280361] Modules linked in: nfsd exportfs nfs lockd nfs_acl
>> auth_rpcgss sunrpc f71882fg coretemp loop lnbp21 stv0299 dvb_ttpci
>> snd_hda_codec_realtek dvb_core saa7146_vv videodev v4l1_compat
>> snd_hda_intel saa7146 snd_hda_codec videobuf_dma_sg snd_hwdep
>> videobuf_core snd_pcm i2c_i801 ttpci_eeprom psmouse snd_timer intel_agp
>> evdev pcspkr snd i2c_core serio_raw agpgart video processor rng_core
>> soundcore button output snd_page_alloc usb_storage uhci_hcd ehci_hcd
>> thermal sd_mod crc_t10dif thermal_sys usbcore nls_base e1000e [last
>> unloaded: scsi_wait_scan]
>> [  773.280361]
>> [  773.280361] Pid: 0, comm: swapper Not tainted 2.6.34-rc7 #7
>> A9830IMS/A9830IMS
>> [  773.280361] EIP: 0060:[<f825a7ba>] EFLAGS: 00010246 CPU: 0
>> [  773.280361] EIP is at saa7146_buffer_next+0x5e/0x1ed [saa7146_vv]
>> [  773.280361] EAX: f68b3008 EBX: f733d900 ECX: 00000001 EDX: 00000002
>> [  773.280361] ESI: ffffffd4 EDI: f68b3000 EBP: 00000000 ESP: c135fefc
>> [  773.280361]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
>> [  773.280361] Process swapper (pid: 0, ti=c135e000 task=c138cb60
>> task.ti=c135e000)
>> [  773.280361] Stack:
>> [  773.280361]  f68b3000 f733d900 c13640bc 0000000a f825e5f6 f733d900
>> fff7fbf7 f825a759
>> [  773.280361] <0> f733d900 ffffffff f812bdfc fff7fbf7 f6a1e240 00000000
>> c106793a 00000000
>> [  773.280361] <0> 00000000 c1364080 0000000a c13640bc c135ff80 c1069072
>> 0000000a 0000000a
>> [  773.280361] Call Trace:
>> [  773.280361]  [<f825e5f6>] ? vbi_irq_done+0x99/0x9f [saa7146_vv]
>> [  773.280361]  [<f825a759>] ? vv_callback+0x10f/0x112 [saa7146_vv]
>> [  773.280361]  [<f812bdfc>] ? interrupt_hw+0x9f/0x1a8 [saa7146]
>> [  773.280361]  [<c106793a>] ? handle_IRQ_event+0x49/0xe7
>> [  773.280361]  [<c1069072>] ? handle_level_irq+0x55/0x9e
>> [  773.280361]  [<c10044cb>] ? handle_irq+0x17/0x1c
>> [  773.280361]  [<c1003da9>] ? do_IRQ+0x38/0x8e
>> [  773.280361]  [<c1002d30>] ? common_interrupt+0x30/0x38
>> [  773.280361]  [<c10086e6>] ? mwait_idle+0x59/0x5e
>> [  773.280361]  [<c1001ae7>] ? cpu_idle+0x91/0xaa
>> [  773.280361]  [<c13b9881>] ? start_kernel+0x31c/0x321
>> [  773.280361] Code: 50 fc 25 f8 e8 9d 0e 01 c9 83 c4 1c 8b 43 44 89 c2
>> c1 fa 08 38 c2 75 04 0f 0b eb fe 8b 77 08 8d 47 08 39 c6 74 6b 83 ee 2c
>> 31 ed <8b> 4e 2c 8b 56 30 89 51 04 89 0a c7 46 2c 00 01 10 00 c7 46 30
> 
> Refer to linux/drivers/media/common/saa7146_fops.c:saa7146_buffer_next()
>         
>         void saa7146_buffer_next(struct saa7146_dev *dev,
>                                  struct saa7146_dmaqueue *q, int vbi)
>         {
>                 struct saa7146_buf *buf,*next = NULL;
>         
>                 BUG_ON(!q);
>         
>                 DEB_INT(("dev:%p, dmaq:%p, vbi:%d\n", dev, q, vbi));
>         
>                 assert_spin_locked(&dev->slock);
>                 if (!list_empty(&q->queue)) {
>                         /* activate next one from queue */
>                         buf = list_entry(q->queue.next,struct saa7146_buf,vb.queue);
>                         list_del(&buf->vb.queue);
>                         if (!list_empty(&q->queue))
>         [...]
> 
> The code bytes from the above disassemble to:
> 
>   37:   e8 9d 0e 01 c9          call   0xc9010ed9
>   3c:   83 c4 1c                add    $0x1c,%esp
>   3f:   8b 43 44                mov    0x44(%ebx),%eax
>   42:   89 c2                   mov    %eax,%edx
>   44:   c1 fa 08                sar    $0x8,%edx
>   47:   38 c2                   cmp    %al,%dl
>   49:   75 04                   jne    0x4f
>   4b:   0f 0b                   ud2a                  <---+ End of BUG_ON() in
>   4d:   eb fe                   jmp    0x4d           <---| assert_spin_locked()
>   4f:   8b 77 08                mov    0x8(%edi),%esi  ; %esi = q->queue->head
>   52:   8d 47 08                lea    0x8(%edi),%eax  ; %eax = q->queue->head->next
>   55:   39 c6                   cmp    %eax,%esi       ; if (!list_empty(&q->queue))
>   57:   74 6b                   je     0xc4            ; skip to else clause
>   59:   83 ee 2c                sub    $0x2c,%esi      ; buf = list_entry(q->queue.next,struct saa7146_buf,vb.queue);
>   5c:   31 ed                   xor    %ebp,%ebp
>   5e:   8b 4e 2c                mov    0x2c(%esi),%ecx   <--- Oops here; %ecx = buf->vb.queue->next
>   61:   8b 56 30                mov    0x30(%esi),%edx
>   64:   89 51 04                mov    %edx,0x4(%ecx)
>   67:   89 0a                   mov    %ecx,(%edx)
>   69:   c7 46 2c 00 01 10 00    movl   $0x100100,0x2c(%esi)
> 
> The Oops happens because q->queue.next is NULL, which is invalid. There
> is some sort of saa7146_dmaqueue list or videobuf list corruption
> problem somewhere.
> 
> I am not familiar enough with the saa7146 nor videobuf to be of much
> more help.
> 
> Regards,
> Andy
> 

Hi Andy,

Thank you for the deeper analysis of this crash. That is much more i
could have done ;)
Hopefully someone shows up with some solution too.

Greetings,
Matthias

      reply	other threads:[~2010-06-01 15:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-30 10:33 PROBLEM: 2.6.34-rc7 kernel panics "BUG: unable to handle kernel NULL pointer dereference at (null)" while channel scan running Silamael
2010-05-31 23:11 ` Andy Walls
2010-06-01 15:42   ` Silamael [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C052A64.8020107@coronamundi.de \
    --to=silamael@coronamundi.de \
    --cc=awalls@md.metrocast.net \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox