.. | .. |
---|
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: |
---|