| .. | .. |
|---|
| 29 | 29 | * different type underlying the specified range of virtual addresses. |
|---|
| 30 | 30 | * When the function isn't able to map a single page, it returns error. |
|---|
| 31 | 31 | * |
|---|
| 32 | + * Note that get_vaddr_frames() cannot follow VM_IO mappings. It used |
|---|
| 33 | + * to be able to do that, but that could (racily) return non-refcounted |
|---|
| 34 | + * pfns. |
|---|
| 35 | + * |
|---|
| 32 | 36 | * This function takes care of grabbing mmap_lock as necessary. |
|---|
| 33 | 37 | */ |
|---|
| 34 | 38 | int get_vaddr_frames(unsigned long start, unsigned int nr_frames, |
|---|
| .. | .. |
|---|
| 77 | 81 | goto out; |
|---|
| 78 | 82 | } |
|---|
| 79 | 83 | |
|---|
| 80 | | - /* This used to (racily) return non-refcounted pfns. Let people know */ |
|---|
| 81 | | - WARN_ONCE(1, "get_vaddr_frames() cannot follow VM_IO mapping"); |
|---|
| 82 | 84 | vec->nr_frames = 0; |
|---|
| 83 | 85 | |
|---|
| 84 | 86 | out: |
|---|