ixp4xx_eth: fix dma_mapping_error() compile errors
authorMikael Pettersson <mikpe@it.uu.se>
Wed, 13 Aug 2008 19:08:14 +0000 (21:08 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 14 Aug 2008 08:27:00 +0000 (04:27 -0400)
The arm ixp4xx_eth driver doesn't compile in 2.6.27-rc1:

  CC [M]  drivers/net/arm/ixp4xx_eth.o
drivers/net/arm/ixp4xx_eth.c: In function 'eth_poll':
drivers/net/arm/ixp4xx_eth.c:554: warning: passing argument 1 of 'dma_mapping_error' makes pointer from integer without a cast
drivers/net/arm/ixp4xx_eth.c:554: error: too few arguments to function 'dma_mapping_error'
drivers/net/arm/ixp4xx_eth.c: In function 'eth_xmit':
drivers/net/arm/ixp4xx_eth.c:701: warning: passing argument 1 of 'dma_mapping_error' makes pointer from integer without a cast
drivers/net/arm/ixp4xx_eth.c:701: error: too few arguments to function 'dma_mapping_error'
drivers/net/arm/ixp4xx_eth.c: In function 'init_queues':
drivers/net/arm/ixp4xx_eth.c:886: warning: passing argument 1 of 'dma_mapping_error' makes pointer from integer without a cast
drivers/net/arm/ixp4xx_eth.c:886: error: too few arguments to function 'dma_mapping_error'
make[3]: *** [drivers/net/arm/ixp4xx_eth.o] Error 1
make[2]: *** [drivers/net/arm] Error 2
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2

dma_mapping_error() changed in 2.6.27-rc1 to also take a device parameter,
but nobody bothered updating ixp4xx_eth.c. Fixed by passing the appropriate
device value in the dma_mapping_error() calls.

Tested on an ixp425 box.

Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Acked-by: Krzysztof Halasa <khc@pm.waw.pl>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/net/arm/ixp4xx_eth.c

index 9b777d9..7d5db2e 100644 (file)
@@ -551,7 +551,7 @@ static int eth_poll(struct napi_struct *napi, int budget)
                if ((skb = netdev_alloc_skb(dev, RX_BUFF_SIZE))) {
                        phys = dma_map_single(&dev->dev, skb->data,
                                              RX_BUFF_SIZE, DMA_FROM_DEVICE);
-                       if (dma_mapping_error(phys)) {
+                       if (dma_mapping_error(&dev->dev, phys)) {
                                dev_kfree_skb(skb);
                                skb = NULL;
                        }
@@ -698,7 +698,7 @@ static int eth_xmit(struct sk_buff *skb, struct net_device *dev)
 #endif
 
        phys = dma_map_single(&dev->dev, mem, bytes, DMA_TO_DEVICE);
-       if (dma_mapping_error(phys)) {
+       if (dma_mapping_error(&dev->dev, phys)) {
 #ifdef __ARMEB__
                dev_kfree_skb(skb);
 #else
@@ -883,7 +883,7 @@ static int init_queues(struct port *port)
                desc->buf_len = MAX_MRU;
                desc->data = dma_map_single(&port->netdev->dev, data,
                                            RX_BUFF_SIZE, DMA_FROM_DEVICE);
-               if (dma_mapping_error(desc->data)) {
+               if (dma_mapping_error(&port->netdev->dev, desc->data)) {
                        free_buffer(buff);
                        return -EIO;
                }