Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 176761
b: refs/heads/master
c: 81f6527
h: refs/heads/master
i:
  176759: adb5bbd
v: v3
  • Loading branch information
Akinobu Mita authored and Linus Torvalds committed Dec 16, 2009
1 parent 84c2c7a commit 2e4d189
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e756fd8080622998007b592bd33f86cecf56587a
refs/heads/master: 81f6527bd322ef1f3a58c2c438b9ded3bd8f606a
19 changes: 5 additions & 14 deletions trunk/arch/ia64/sn/pci/tioca_provider.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/pci.h>
#include <linux/bitmap.h>
#include <asm/sn/sn_sal.h>
#include <asm/sn/addrs.h>
#include <asm/sn/io.h>
Expand Down Expand Up @@ -369,7 +370,7 @@ tioca_dma_d48(struct pci_dev *pdev, u64 paddr)
static dma_addr_t
tioca_dma_mapped(struct pci_dev *pdev, unsigned long paddr, size_t req_size)
{
int i, ps, ps_shift, entry, entries, mapsize, last_entry;
int ps, ps_shift, entry, entries, mapsize;
u64 xio_addr, end_xio_addr;
struct tioca_common *tioca_common;
struct tioca_kernel *tioca_kern;
Expand Down Expand Up @@ -410,23 +411,13 @@ tioca_dma_mapped(struct pci_dev *pdev, unsigned long paddr, size_t req_size)
map = tioca_kern->ca_pcigart_pagemap;
mapsize = tioca_kern->ca_pcigart_entries;

entry = find_first_zero_bit(map, mapsize);
while (entry < mapsize) {
last_entry = find_next_bit(map, mapsize, entry);

if (last_entry - entry >= entries)
break;

entry = find_next_zero_bit(map, mapsize, last_entry);
}

if (entry > mapsize) {
entry = bitmap_find_next_zero_area(map, mapsize, 0, entries, 0);
if (entry >= mapsize) {
kfree(ca_dmamap);
goto map_return;
}

for (i = 0; i < entries; i++)
set_bit(entry + i, map);
bitmap_set(map, entry, entries);

bus_addr = tioca_kern->ca_pciap_base + (entry * ps);

Expand Down

0 comments on commit 2e4d189

Please sign in to comment.