Subject: Re: [Bugme-new] [Bug 12969] New: WARNING: at lib/dma-debug.c:539 check_sync+0xe9/0x341() (Not tainted)

From: Sergio Monteiro Basto <[email-masked]>
Date: Tue, 07 Apr 2009 15:31:49 +0100

+ b44-use-kernel-dma-addresses-for-the-kernel-dma-api.patch added to -mm
tree

fixes the bug for me 

Thanks, 

On Wed, 2009-04-01 at 16:50 -0700, Andrew Morton wrote:

> On Sun, 29 Mar 2009 11:43:19 GMT
> [email-masked] wrote:
> 
> > http://bugzilla.kernel.org/show_bug.cgi?id=12969
> > 
> >            Summary: WARNING: at lib/dma-debug.c:539
> >                     check_sync+0xe9/0x341() (Not tainted)
> >            Product: Drivers
> >            Version: 2.5
> >           Platform: All
> >         OS/Version: Linux
> >               Tree: Fedora
> >             Status: NEW
> >           Severity: normal
> >           Priority: P1
> >          Component: Network
> >         AssignedTo: [email-masked]
> >         ReportedBy: [email-masked]
> >         Regression: Yes
> > 
> > 
> > ------------[ cut
> here ]------------                                            
> > WARNING: at lib/dma-debug.c:539 check_sync+0xe9/0x341() (Not
> tainted)           
> > Hardware name: HP Compaq nx6110
> (PY501EA#AB9)                                   
> > b44 0000:02:0e.0: DMA-API: device driver tries to sync DMA memory it
> has not
> > allocated [device address=0x0000000075941040] [size=1566 bytes]  
> > Modules linked in: llc bnep l2cap bluetooth autofs4 lm90 hwmon
> i2c_i801 sunrpc
> > ipv6 cpufreq_ondemand acpi_cpufreq uinput snd_intel8x0m snd_intel8x0
> > snd_ac97_codec snd_seq_dummy ac97_bus snd_seq_oss snd_seq_midi_event
> snd_seq
> > snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm b44 ssb
> firewire_ohci
> > snd_timer ipw2200 iTCO_wdt mii firewire_core snd iTCO_vendor_support
> libipw
> > yenta_socket crc_itu_t lib80211 rsrc_nonstatic soundcore
> snd_page_alloc joydev
> > pcspkr wmi serio_raw ata_generic pata_acpi i915 drm i2c_algo_bit
> i2c_core video
> > output [last unloaded:
> scsi_wait_scan]                                          
> > Pid: 2418, comm: S58ntpd Not tainted 2.6.29-16.fc10.i686.PAE
> #1                 
> > Call
> Trace:                                                                     
> >  [<c04396d1>] warn_slowpath
> +0x7c/0xbd                                           
> >  [<c0457fe1>] ? register_lock_class
> +0x17/0x290                                  
> >  [<c0458d61>] ? mark_lock
> +0x1e/0x349                                            
> >  [<c0556448>] ? _raw_spin_unlock
> +0x74/0x78                                      
> >  [<c0458d61>] ? mark_lock
> +0x1e/0x349                                            
> >  [<c055a060>] ? check_sync
> +0x37/0x341                                           
> >  [<c055a112>] check_sync
> +0xe9/0x341                                             
> >  [<c0711245>] ? _spin_unlock_irqrestore
> +0x45/0x55                               
> >  [<c04592db>] ? trace_hardirqs_on
> +0xb/0xd                                       
> >  [<c055a4d1>] debug_dma_sync_single_for_device
> +0x2f/0x39                        
> >  [<f828f722>] dma_sync_single_for_device+0x4a/0x59
> [b44]                        
> >  [<f828f76f>] ssb_dma_sync_single_for_device+0x3e/0x48
> [b44]                    
> >  [<f8291d1e>] b44_recycle_rx+0x18c/0x196
> [b44]                                  
> >  [<f8291f9f>] b44_poll+0x277/0x3c0
> [b44]                                        
> >  [<c0687bb9>] net_rx_action
> +0xa1/0x1ca                                          
> >  [<c043e30a>] __do_softirq
> +0x9d/0x154                                           
> >  [<c043e413>] do_softirq
> +0x52/0x7e                                              
> >  [<c043e56f>] irq_exit
> +0x49/0x77                                                
> >  [<c040b22e>] do_IRQ
> +0x97/0xad                                                  
> >  [<c0409dac>] common_interrupt
> +0x2c/0x34                                        
> 
> This would appear to be reporting a bug in b44's DMA API usage.  See
> the newly-added documentation in Documentation/DMA-API.txt, starting
> with
> 
>         Part III - Debug drivers use of the DMA-API
> 
> The line numbers have changed, but it is:
> 
>                 err_printk(ref->dev, NULL, "DMA-API: device driver
> tries "
>                            "to free DMA memory it has not allocated "
>                            "[device address=0x%016llx] [size=%llu
> bytes]\n",
>                            ref->dev_addr, ref->size);
> 
-- 
Sérgio M. B.