Thread (5 messages) flat view 5 messages, 3 authors, 2013-01-30

Re: ixp4xx eth broken in 3.7.0/3.8-rc5?

From: Ben Hutchings <hidden>
Date: 2013-01-30 01:34:07
Also in: linux-arm-kernel

On Tue, 2013-01-29 at 19:32 -0500, Xi Wang wrote:
On 1/29/13 7:11 PM, Mikael Pettersson wrote:
quoted
A git bisect identified the following as the culprit:

  > From 1a4901177574083c35fafc24c4d151c2a7c7647c Mon Sep 17 00:00:00 2001
  > From: Xi Wang [off-list ref]
  > Date: Sat, 17 Nov 2012 20:25:09 +0000
  > Subject: [PATCH] ixp4xx_eth: avoid calling dma_pool_create() with NULL dev
  >
  > Use &port->netdev->dev instead of NULL since dma_pool_create() doesn't
  > allow NULL dev.
  >
  > Signed-off-by: Xi Wang [off-list ref]
  > Cc: Andrew Morton [off-list ref]
  > Signed-off-by: David S. Miller [off-list ref]
  > ---
  >  drivers/net/ethernet/xscale/ixp4xx_eth.c |    8 +++++---
  >  1 files changed, 5 insertions(+), 3 deletions(-)

Reverting this unbreaks ixp4xx_eth on my ixp4xx machine with kernels
3.7.0 and 3.8-rc5.
Thanks.  The problem was that in init_queues(), the dma_pool_create()
call requires a non-null dev.

  dma_pool = dma_pool_create(DRV_NAME, ??, ...);

What do you think would work here?
For DMA purposes I would expect the right device to be the parent bus
device, i.e. port->netdev->dev.parent.  The driver might also need to
set its DMA masks.

Ben.

-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help