Lines Matching refs:map
72 static inline void sq_mapping_list_add(struct sq_mapping *map)
82 map->next = tmp;
83 *p = map;
88 static inline void sq_mapping_list_del(struct sq_mapping *map)
95 if (tmp == map) {
103 static int __sq_remap(struct sq_mapping *map, pgprot_t prot)
108 vma = __get_vm_area(map->size, VM_ALLOC, map->sq_addr, SQ_ADDRMAX);
112 vma->phys_addr = map->addr;
115 (unsigned long)vma->addr + map->size,
126 __raw_writel(((map->addr >> 26) << 2) & 0x1c, SQ_QACR0);
127 __raw_writel(((map->addr >> 26) << 2) & 0x1c, SQ_QACR1);
147 struct sq_mapping *map;
163 map = kmem_cache_alloc(sq_cache, GFP_KERNEL);
164 if (unlikely(!map))
167 map->addr = phys;
168 map->size = size;
169 map->name = name;
172 get_order(map->size));
178 map->sq_addr = P4SEG_STORE_QUE + (page << PAGE_SHIFT);
180 ret = __sq_remap(map, prot);
186 likely(map->name) ? map->name : "???",
188 map->sq_addr, map->addr);
190 sq_mapping_list_add(map);
192 return map->sq_addr;
195 kmem_cache_free(sq_cache, map);
204 * Unmaps the store queue allocation @map that was previously created by
210 struct sq_mapping **p, *map;
213 for (p = &sq_mapping_list; (map = *p); p = &map->next)
214 if (map->sq_addr == vaddr)
217 if (unlikely(!map)) {
223 page = (map->sq_addr - P4SEG_STORE_QUE) >> PAGE_SHIFT;
224 bitmap_release_region(sq_bitmap, page, get_order(map->size));
233 vma = remove_vm_area((void *)(map->sq_addr & PAGE_MASK));
236 __func__, map->sq_addr);
242 sq_mapping_list_del(map);
244 kmem_cache_free(sq_cache, map);