diff options
Diffstat (limited to 'drivers/net/s2io.c')
-rw-r--r-- | drivers/net/s2io.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c index 9c224eba057d..ea638b162d3f 100644 --- a/drivers/net/s2io.c +++ b/drivers/net/s2io.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include <linux/errno.h> | 42 | #include <linux/errno.h> |
43 | #include <linux/ioport.h> | 43 | #include <linux/ioport.h> |
44 | #include <linux/pci.h> | 44 | #include <linux/pci.h> |
45 | #include <linux/dma-mapping.h> | ||
45 | #include <linux/kernel.h> | 46 | #include <linux/kernel.h> |
46 | #include <linux/netdevice.h> | 47 | #include <linux/netdevice.h> |
47 | #include <linux/etherdevice.h> | 48 | #include <linux/etherdevice.h> |
@@ -1698,11 +1699,9 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no) | |||
1698 | #else | 1699 | #else |
1699 | ba = &nic->ba[ring_no][block_no][off]; | 1700 | ba = &nic->ba[ring_no][block_no][off]; |
1700 | skb_reserve(skb, BUF0_LEN); | 1701 | skb_reserve(skb, BUF0_LEN); |
1701 | tmp = (unsigned long) skb->data; | 1702 | tmp = ((unsigned long) skb->data & ALIGN_SIZE); |
1702 | tmp += ALIGN_SIZE; | 1703 | if (tmp) |
1703 | tmp &= ~ALIGN_SIZE; | 1704 | skb_reserve(skb, (ALIGN_SIZE + 1) - tmp); |
1704 | skb->data = (void *) tmp; | ||
1705 | skb->tail = (void *) tmp; | ||
1706 | 1705 | ||
1707 | memset(rxdp, 0, sizeof(RxD_t)); | 1706 | memset(rxdp, 0, sizeof(RxD_t)); |
1708 | rxdp->Buffer2_ptr = pci_map_single | 1707 | rxdp->Buffer2_ptr = pci_map_single |
@@ -4593,19 +4592,19 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) | |||
4593 | return ret; | 4592 | return ret; |
4594 | } | 4593 | } |
4595 | 4594 | ||
4596 | if (!pci_set_dma_mask(pdev, 0xffffffffffffffffULL)) { | 4595 | if (!pci_set_dma_mask(pdev, DMA_64BIT_MASK)) { |
4597 | DBG_PRINT(INIT_DBG, "s2io_init_nic: Using 64bit DMA\n"); | 4596 | DBG_PRINT(INIT_DBG, "s2io_init_nic: Using 64bit DMA\n"); |
4598 | dma_flag = TRUE; | 4597 | dma_flag = TRUE; |
4599 | 4598 | ||
4600 | if (pci_set_consistent_dma_mask | 4599 | if (pci_set_consistent_dma_mask |
4601 | (pdev, 0xffffffffffffffffULL)) { | 4600 | (pdev, DMA_64BIT_MASK)) { |
4602 | DBG_PRINT(ERR_DBG, | 4601 | DBG_PRINT(ERR_DBG, |
4603 | "Unable to obtain 64bit DMA for \ | 4602 | "Unable to obtain 64bit DMA for \ |
4604 | consistent allocations\n"); | 4603 | consistent allocations\n"); |
4605 | pci_disable_device(pdev); | 4604 | pci_disable_device(pdev); |
4606 | return -ENOMEM; | 4605 | return -ENOMEM; |
4607 | } | 4606 | } |
4608 | } else if (!pci_set_dma_mask(pdev, 0xffffffffUL)) { | 4607 | } else if (!pci_set_dma_mask(pdev, DMA_32BIT_MASK)) { |
4609 | DBG_PRINT(INIT_DBG, "s2io_init_nic: Using 32bit DMA\n"); | 4608 | DBG_PRINT(INIT_DBG, "s2io_init_nic: Using 32bit DMA\n"); |
4610 | } else { | 4609 | } else { |
4611 | pci_disable_device(pdev); | 4610 | pci_disable_device(pdev); |