------------[ 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 ]---
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
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.
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); > >
> > ------------[ 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),
Created attachment 20837 [details] Bugfix patch
+ 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); >