Lines Matching refs:map
70 static inline void sq_mapping_list_add(struct sq_mapping *map)
80 map->next = tmp;
81 *p = map;
86 static inline void sq_mapping_list_del(struct sq_mapping *map)
93 if (tmp == map) {
101 static int __sq_remap(struct sq_mapping *map, pgprot_t prot)
106 vma = __get_vm_area_caller(map->size, VM_IOREMAP, map->sq_addr,
111 vma->phys_addr = map->addr;
114 (unsigned long)vma->addr + map->size,
125 __raw_writel(((map->addr >> 26) << 2) & 0x1c, SQ_QACR0);
126 __raw_writel(((map->addr >> 26) << 2) & 0x1c, SQ_QACR1);
146 struct sq_mapping *map;
162 map = kmem_cache_alloc(sq_cache, GFP_KERNEL);
163 if (unlikely(!map))
166 map->addr = phys;
167 map->size = size;
168 map->name = name;
171 get_order(map->size));
177 map->sq_addr = P4SEG_STORE_QUE + (page << PAGE_SHIFT);
179 ret = __sq_remap(map, prot);
185 likely(map->name) ? map->name : "???",
187 map->sq_addr, map->addr);
189 sq_mapping_list_add(map);
191 return map->sq_addr;
194 kmem_cache_free(sq_cache, map);
203 * Unmaps the store queue allocation @map that was previously created by
209 struct sq_mapping **p, *map;
212 for (p = &sq_mapping_list; (map = *p); p = &map->next)
213 if (map->sq_addr == vaddr)
216 if (unlikely(!map)) {
222 page = (map->sq_addr - P4SEG_STORE_QUE) >> PAGE_SHIFT;
223 bitmap_release_region(sq_bitmap, page, get_order(map->size));
232 vma = remove_vm_area((void *)(map->sq_addr & PAGE_MASK));
235 __func__, map->sq_addr);
241 sq_mapping_list_del(map);
243 kmem_cache_free(sq_cache, map);