netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* dma-debug warning with ixgbe
@ 2009-06-16 15:34 Joerg Roedel
  2009-06-16 16:33 ` Brandeburg, Jesse
  0 siblings, 1 reply; 3+ messages in thread
From: Joerg Roedel @ 2009-06-16 15:34 UTC (permalink / raw)
  To: jesse.brandeburg; +Cc: e1000-devel, netdev, linux-kernel

Hi,

today I got this dma-debug warning with the ixgbe driver with a kernel
near 2.6.30-rc8.

------------[ cut here ]------------
WARNING: at /data/repos/linux-2.6-iommu/lib/dma-debug.c:806
check_unmap+0x214/0x5c3()
Hardware name: Toonie
ixgbe 0000:02:00.0: DMA-API: device driver frees DMA memory with
different size [device address=0x0000000000045c12] [map size=258
bytes] [unmap size=256 bytes]
Modules linked in: loop i2c_piix4 tpm_infineon rtc_cmos tpm
tpm_bios rtc_core rtc_lib button ata_generic pata_acpi usbhid
pata_atiixp ixgbe hid dca bnx2
Pid: 4391, comm: ifconfig Not tainted 2.6.30-rc81 #1
Call Trace:
 [<ffffffff8039125a>] ? check_unmap+0x214/0x5c3
 [<ffffffff80238d72>] warn_slowpath_common+0x77/0xa4
 [<ffffffff80238e14>] warn_slowpath_fmt+0x64/0x66
 [<ffffffff80391134>] ? check_unmap+0xee/0x5c3
 [<ffffffff8058970b>] ? _spin_lock_irqsave+0x3f/0x4b
 [<ffffffff80391134>] ? check_unmap+0xee/0x5c3
 [<ffffffff8039125a>] check_unmap+0x214/0x5c3
 [<ffffffff80391813>] debug_dma_unmap_page+0x51/0x53
 [<ffffffffa002e29c>] ixgbe_clean_rx_ring+0xb9/0x1e4 [ixgbe]
 [<ffffffffa002f2f6>] ixgbe_down+0x2f8/0x34e [ixgbe]
 [<ffffffffa00307a8>] ixgbe_reinit_locked+0x59/0x70 [ixgbe]
 [<ffffffffa0030837>] ixgbe_change_mtu+0x78/0x82 [ixgbe]
 [<ffffffff804f56b5>] dev_set_mtu+0x3a/0x69
 [<ffffffff804f688c>] dev_ifsioc+0xcf/0x2cc
 [<ffffffff804f7018>] dev_ioctl+0x58f/0x647
 [<ffffffff80351978>] ? avc_has_perm+0x4e/0x60
 [<ffffffff804e4e7f>] sock_ioctl+0x21f/0x231
 [<ffffffff802cb478>] vfs_ioctl+0x2a/0x78
 [<ffffffff802cb934>] do_vfs_ioctl+0x46e/0x4aa
 [<ffffffff80250521>] ? up_read+0x26/0x2b
 [<ffffffff802cb9c5>] sys_ioctl+0x55/0x77
 [<ffffffff8020afab>] system_call_fastpath+0x16/0x1b
---[ end trace f560e4a00a9d5d32 ]---
Mapped at:
 [<ffffffff80391bca>] debug_dma_map_page+0x7c/0x11f
 [<ffffffffa002b3ba>] ixgbe_alloc_rx_buffers+0x247/0x316 [ixgbe]
 [<ffffffffa002bc5a>] ixgbe_configure+0x7d1/0x7e3 [ixgbe]
 [<ffffffffa002ffb9>] ixgbe_open+0xed/0x63b [ixgbe]
 [<ffffffff804f5d48>] dev_open+0x7c/0xc2

Joerg

-- 
           | Advanced Micro Devices GmbH
 Operating | Karl-Hammerschmidt-Str. 34, 85609 Dornach bei München
 System    | 
 Research  | Geschäftsführer: Thomas M. McCoy, Giuliano Meroni
 Center    | Sitz: Dornach, Gemeinde Aschheim, Landkreis München
           | Registergericht München, HRB Nr. 43632


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: dma-debug warning with ixgbe
  2009-06-16 15:34 dma-debug warning with ixgbe Joerg Roedel
@ 2009-06-16 16:33 ` Brandeburg, Jesse
  2009-06-17  9:26   ` Joerg Roedel
  0 siblings, 1 reply; 3+ messages in thread
From: Brandeburg, Jesse @ 2009-06-16 16:33 UTC (permalink / raw)
  To: Joerg Roedel
  Cc: e1000-devel@lists.sourceforge.net, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org

On Tue, 16 Jun 2009, Joerg Roedel wrote:
> today I got this dma-debug warning with the ixgbe driver with a kernel
> near 2.6.30-rc8.

Hi Joerg, thanks for the report, I thought we had fixed all of these 
already but we must have missed this one.

> ------------[ cut here ]------------
> WARNING: at /data/repos/linux-2.6-iommu/lib/dma-debug.c:806
> check_unmap+0x214/0x5c3()
> Hardware name: Toonie
> ixgbe 0000:02:00.0: DMA-API: device driver frees DMA memory with
> different size [device address=0x0000000000045c12] [map size=258
> bytes] [unmap size=256 bytes]

The following patch should fix it, compile tested only, but it is pretty 
straight forward.

---

ixgbe: fix map length bug

From: Jesse Brandeburg <jesse.brandeburg@intel.com>

ixgbe is mapping more than it unmaps, reduce the length of the map call and
remove the "used once" local variable.

found by Joerg Roedel <joerg.roedel@amd.com> in 2.6.30, so is a candidate for
-stable.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
CC: Joerg Roedel <joerg.roedel@amd.com>
---

 drivers/net/ixgbe/ixgbe_main.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)


diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index a551a96..01c2193 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -563,7 +563,6 @@ static void ixgbe_alloc_rx_buffers(struct ixgbe_adapter *adapter,
 	union ixgbe_adv_rx_desc *rx_desc;
 	struct ixgbe_rx_buffer *bi;
 	unsigned int i;
-	unsigned int bufsz = rx_ring->rx_buf_len + NET_IP_ALIGN;
 
 	i = rx_ring->next_to_use;
 	bi = &rx_ring->rx_buffer_info[i];
@@ -593,7 +592,9 @@ static void ixgbe_alloc_rx_buffers(struct ixgbe_adapter *adapter,
 
 		if (!bi->skb) {
 			struct sk_buff *skb;
-			skb = netdev_alloc_skb(adapter->netdev, bufsz);
+			skb = netdev_alloc_skb(adapter->netdev,
+			                       (rx_ring->rx_buf_len +
+			                        NET_IP_ALIGN));
 
 			if (!skb) {
 				adapter->alloc_rx_buff_failed++;
@@ -608,7 +609,8 @@ static void ixgbe_alloc_rx_buffers(struct ixgbe_adapter *adapter,
 			skb_reserve(skb, NET_IP_ALIGN);
 
 			bi->skb = skb;
-			bi->dma = pci_map_single(pdev, skb->data, bufsz,
+			bi->dma = pci_map_single(pdev, skb->data,
+			                         rx_ring->rx_buf_len,
 			                         PCI_DMA_FROMDEVICE);
 		}
 		/* Refresh the desc even if buffer_addrs didn't change because

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: dma-debug warning with ixgbe
  2009-06-16 16:33 ` Brandeburg, Jesse
@ 2009-06-17  9:26   ` Joerg Roedel
  0 siblings, 0 replies; 3+ messages in thread
From: Joerg Roedel @ 2009-06-17  9:26 UTC (permalink / raw)
  To: Brandeburg, Jesse
  Cc: e1000-devel@lists.sourceforge.net, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org

On Tue, Jun 16, 2009 at 09:33:15AM -0700, Brandeburg, Jesse wrote:
> On Tue, 16 Jun 2009, Joerg Roedel wrote:
> > today I got this dma-debug warning with the ixgbe driver with a kernel
> > near 2.6.30-rc8.
> 
> Hi Joerg, thanks for the report, I thought we had fixed all of these 
> already but we must have missed this one.
> 
> > ------------[ cut here ]------------
> > WARNING: at /data/repos/linux-2.6-iommu/lib/dma-debug.c:806
> > check_unmap+0x214/0x5c3()
> > Hardware name: Toonie
> > ixgbe 0000:02:00.0: DMA-API: device driver frees DMA memory with
> > different size [device address=0x0000000000045c12] [map size=258
> > bytes] [unmap size=256 bytes]
> 
> The following patch should fix it, compile tested only, but it is pretty 
> straight forward.

Thanks for the quick answer :) But I tested the patch and the warning is
still there.

	Joerg

-- 
           | Advanced Micro Devices GmbH
 Operating | Karl-Hammerschmidt-Str. 34, 85609 Dornach bei München
 System    | 
 Research  | Geschäftsführer: Thomas M. McCoy, Giuliano Meroni
 Center    | Sitz: Dornach, Gemeinde Aschheim, Landkreis München
           | Registergericht München, HRB Nr. 43632


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-06-17  9:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-16 15:34 dma-debug warning with ixgbe Joerg Roedel
2009-06-16 16:33 ` Brandeburg, Jesse
2009-06-17  9:26   ` Joerg Roedel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).