Bug 12969 - WARNING: at lib/dma-debug.c:539 check_sync+0xe9/0x341() (Not tainted)
Summary: WARNING: at lib/dma-debug.c:539 check_sync+0xe9/0x341() (Not tainted)
Status: CLOSED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: Network (show other bugs)
Hardware: i386 Linux
: P1 normal
Assignee: drivers_network@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-03-29 11:43 UTC by Sérgio M Basto
Modified: 2010-01-19 21:43 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.29
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
Bugfix patch (533 bytes, patch)
2009-04-06 20:57 UTC, Michael Buesch
Details | Diff

Description Sérgio M Basto 2009-03-29 11:43:18 UTC
------------[ 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                                                                                                      
---[ end trace d1aa19a66382cf6a ]---
Comment 1 Sérgio M Basto 2009-03-29 11:45:26 UTC
https://bugzilla.redhat.com/show_bug.cgi?id=489325
https://bugzilla.redhat.com/show_bug.cgi?id=488409
and me with 
kernel 2.6.29-16.fc11.i686.PAE
last working kernel 2.6.28
Comment 2 Sérgio M Basto 2009-04-01 03:37:40 UTC
today, this seems that crash my route (often), and some weird networks things happens  
------------[ 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=0x0000000075119040] [size=1566 bytes]                                                                                                                
Modules linked in: michael_mic arc4 ecb lib80211_crypt_tkip fuse sco bridge stp llc bnep l2cap bluetooth autofs4 lm90 hwmon i2c_i801 sunrpc ipv6 cpufreq_ondemand acpi_cpufreq uinput snd_intel8x0m snd_intel8x0 snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm ipw2200 snd_timer firewire_ohci libipw b44 firewire_core joydev crc_itu_t snd iTCO_wdt iTCO_vendor_support serio_raw ssb mii soundcore yenta_socket rsrc_nonstatic lib80211 snd_page_alloc wmi ata_generic pata_acpi i915 drm i2c_algo_bit i2c_core video output [last unloaded: pcspkr]               
Pid: 2921, comm: kwin Not tainted 2.6.29-16.fc10.i686.PAE #1                                                                  
Call Trace:                                                                                                                   
 [<c04396d1>] warn_slowpath+0x7c/0xbd                                                                                         
 [<c04c38be>] ? pollwake+0x0/0x5a                                                                                             
 [<c045a498>] ? print_lock_contention_bug+0x14/0xd7                                                                           
 [<c04c38be>] ? pollwake+0x0/0x5a                                                                                             
 [<c045a498>] ? print_lock_contention_bug+0x14/0xd7                                                                           
 [<c04c38be>] ? pollwake+0x0/0x5a                                                                                             
 [<c04c38be>] ? pollwake+0x0/0x5a                                                                                             
 [<c045a498>] ? print_lock_contention_bug+0x14/0xd7                                                                           
 [<c055a060>] ? check_sync+0x37/0x341                                                                                         
 [<c055a112>] check_sync+0xe9/0x341                                                                                           
 [<c04592db>] ? trace_hardirqs_on+0xb/0xd                                                                                     
 [<c055a4d1>] debug_dma_sync_single_for_device+0x2f/0x39                                                                      
 [<f8273722>] dma_sync_single_for_device+0x4a/0x59 [b44]                                                                      
 [<f827376f>] ssb_dma_sync_single_for_device+0x3e/0x48 [b44]                                                                  
 [<f8275d1e>] b44_recycle_rx+0x18c/0x196 [b44]
 [<f8275f9f>] 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
 [<c0420af6>] ? read_hpet+0x14/0x18
 [<c0452c9b>] getnstimeofday+0x5b/0xe9
 [<c044e794>] ktime_get_ts+0x2a/0x53
 [<c044a3bf>] posix_ktime_get_ts+0xf/0x13
 [<c044a589>] sys_clock_gettime+0x51/0x88
 [<c0409776>] syscall_call+0x7/0xb
---[ end trace fd3fa10055f178bd ]---
b44: eth0: powering down PHY
b44: eth0: Link is down.
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
eth0: no IPv6 routers present
b44: eth0: Link is down.
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
Comment 3 Sérgio M Basto 2009-04-03 02:23:51 UTC
On Wed, 2009-04-01 at 16:50 -0700, Andrew Morton wrote:
> (switched to email.  Please respond via emailed reply-to-all, not via the
> bugzilla web interface).
> 
> On Sun, 29 Mar 2009 11:43:19 GMT
> bugzilla-daemon@bugzilla.kernel.org 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: drivers_network@kernel-bugs.osdl.org
> >         ReportedBy: sergio@sergiomb.no-ip.org
> >         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.  

Hi!, are you saying that could be a bug in new DMA-API ? (if we have
one) 

I don't had problems before with this b44 and laptop is not new.
With kernel 2.6.29, I am testing KMS on new drm/dri Intel video, I also
have one big warning with i915 reported on
Bug 12419 - possible circular locking dependency on i915 dma.

What I would like to know is :  
Could bug 12419 make this warning on b44 ? or could DMA-API make the 2
warnings ? or the 2 warnings are completed different ? and the
combinations of this questions :)    


Thanks, 
> 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);
> 
>
Comment 4 Michael Buesch 2009-04-03 10:03:27 UTC
> > ------------[ 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                                    

I don't know if this is related, but the following patch seems to fix some DMA
mapping bug. Can somebody comment who does understand the code better than me?

(completely untested)

Index: wireless-testing/drivers/net/b44.c
===================================================================
--- wireless-testing.orig/drivers/net/b44.c	2009-04-02 23:13:10.000000000 +0200
+++ wireless-testing/drivers/net/b44.c	2009-04-02 23:17:44.000000000 +0200
@@ -703,7 +703,7 @@ static int b44_alloc_rx_skb(struct b44 *
 
 	if (bp->flags & B44_FLAG_RX_RING_HACK)
 		b44_sync_dma_desc_for_device(bp->sdev, bp->rx_ring_dma,
-			                    dest_idx * sizeof(dp),
+			                    dest_idx * sizeof(*dp),
 			                    DMA_BIDIRECTIONAL);
 
 	return RX_PKT_BUF_SZ;
@@ -731,7 +731,7 @@ static void b44_recycle_rx(struct b44 *b
 
 	if (bp->flags & B44_FLAG_RX_RING_HACK)
 		b44_sync_dma_desc_for_cpu(bp->sdev, bp->rx_ring_dma,
-			                 src_idx * sizeof(src_desc),
+			                 src_idx * sizeof(*src_desc),
 			                 DMA_BIDIRECTIONAL);
 
 	ctrl = src_desc->ctrl;
@@ -747,7 +747,7 @@ static void b44_recycle_rx(struct b44 *b
 
 	if (bp->flags & B44_FLAG_RX_RING_HACK)
 		b44_sync_dma_desc_for_device(bp->sdev, bp->rx_ring_dma,
-					     dest_idx * sizeof(dest_desc),
+					     dest_idx * sizeof(*dest_desc),
 					     DMA_BIDIRECTIONAL);
 
 	ssb_dma_sync_single_for_device(bp->sdev, le32_to_cpu(src_desc->addr),
Comment 5 Michael Buesch 2009-04-06 20:57:08 UTC
Created attachment 20837 [details]
Bugfix patch
Comment 6 Sérgio M Basto 2009-04-07 14:32:01 UTC
+ 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
> bugzilla-daemon@bugzilla.kernel.org 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: drivers_network@kernel-bugs.osdl.org
> >         ReportedBy: sergio@sergiomb.no-ip.org
> >         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);
>

Note You need to log in before you can comment on or make changes to this bug.