All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Jones <davej@redhat.com>
To: netdev@vger.kernel.org
Subject: 8139cp dma-debug warning.
Date: Thu, 6 Aug 2009 17:57:02 -0400	[thread overview]
Message-ID: <20090806215702.GA17555@redhat.com> (raw)

I'm chasing yet another dma-debug warning where we're unmapping a different
size to what we mapped.

 > WARNING: at lib/dma-debug.c:803 check_unmap+0x1f5/0x509() (Not tainted)
 > Hardware name: 
 > 8139cp 0000:00:03.0: DMA-API: device driver frees DMA memory with different
 > size [device address=0x000000001e9f8852] [map size=1536 bytes] [unmap size=1538
 > bytes]
 > Modules linked in: ipv6 dm_multipath uinput joydev 8139too virtio_balloon
 > 8139cp mii i2c_piix4 virtio_pci i2c_core floppy squashfs pata_acpi ata_generic
 > [last unloaded: scsi_wait_scan]
 > Pid: 0, comm: swapper Not tainted 2.6.31-0.125.rc5.git2.fc12.i686 #1
 > Call Trace:
 >  [<c0444408>] warn_slowpath_common+0x7b/0xa3
 >  [<c0606746>] ? check_unmap+0x1f5/0x509
 >  [<c0444499>] warn_slowpath_fmt+0x34/0x48
 >  [<c0606746>] check_unmap+0x1f5/0x509
 >  [<c04ecb43>] ? check_valid_pointer+0x2c/0x6c
 >  [<c0606c00>] debug_dma_unmap_page+0x62/0x7b
 >  [<e0dc80be>] dma_unmap_single_attrs.clone.2+0x5a/0x75 [8139cp]
 >  [<e0dc8220>] cp_rx_poll+0x147/0x301 [8139cp]
 >  [<c077e5d4>] net_rx_action+0xa7/0x1d3
 >  [<c044accf>] __do_softirq+0xc8/0x192
 >  [<c044ade2>] do_softirq+0x49/0x7f
 >  [<c044af36>] irq_exit+0x48/0x8c
 >  [<c041c302>] smp_apic_timer_interrupt+0x7a/0x99
 >  [<c0404416>] apic_timer_interrupt+0x36/0x3c
 >  [<c0425e98>] ? native_safe_halt+0xa/0xc
 >  [<c040ad6f>] default_idle+0x55/0x98
 >  [<c046e44d>] ? trace_hardirqs_off+0x19/0x2c
 >  [<c04029e3>] cpu_idle+0xac/0xcd
 >  [<c08080ee>] rest_init+0x66/0x79
 >  [<c0a72ae0>] start_kernel+0x36f/0x385
 >  [<c0a7207e>] __init_begin+0x7e/0x96
 > ---[ end trace f3c3298e5df24f15 ]---
 > Mapped at:
 >  [<c0606f6b>] debug_dma_map_page+0x6b/0x13b
 >  [<e0dc7c22>] dma_map_single_attrs.clone.1+0x78/0x93 [8139cp]
 >  [<e0dc86d0>] cp_init_rings+0xaa/0x12c [8139cp]
 >  [<e0dc87d6>] cp_open+0x84/0x154 [8139cp]
 >  [<c077ff2b>] dev_open+0x99/0xe4
 
Looking at 8139cp.c I see this code in cp_rx_poll ..

 552                 buflen = cp->rx_buf_sz + NET_IP_ALIGN;
 553                 new_skb = netdev_alloc_skb(dev, buflen);
 554                 if (!new_skb) {
 555                         dev->stats.rx_dropped++;
 556                         goto rx_next;
 557                 }
 558 
 559                 skb_reserve(new_skb, NET_IP_ALIGN);


Aren't we padding the alignment twice here? or am I missing something?
The warning was a difference of two bytes, which is NET_IP_ALIGN,
so I'm wondering if that skb_reserve line needs to be nuked ?

	Dave


             reply	other threads:[~2009-08-06 21:57 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-06 21:57 Dave Jones [this message]
2009-08-12 17:13 ` 8139cp dma-debug warning Dave Jones
2009-08-13  5:20   ` David Miller
2009-08-13 13:45     ` Dave Jones
2009-08-13 19:23       ` Francois Romieu
2009-08-13 19:28         ` Dave Jones

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=20090806215702.GA17555@redhat.com \
    --to=davej@redhat.com \
    --cc=netdev@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.