|
@@ -100,7 +100,7 @@ static inline void sq_mapping_list_del(struct sq_mapping *map)
|
|
|
spin_unlock_irq(&sq_mapping_lock);
|
|
|
}
|
|
|
|
|
|
-static int __sq_remap(struct sq_mapping *map, unsigned long flags)
|
|
|
+static int __sq_remap(struct sq_mapping *map, pgprot_t prot)
|
|
|
{
|
|
|
#if defined(CONFIG_MMU)
|
|
|
struct vm_struct *vma;
|
|
@@ -113,7 +113,7 @@ static int __sq_remap(struct sq_mapping *map, unsigned long flags)
|
|
|
|
|
|
if (ioremap_page_range((unsigned long)vma->addr,
|
|
|
(unsigned long)vma->addr + map->size,
|
|
|
- vma->phys_addr, __pgprot(flags))) {
|
|
|
+ vma->phys_addr, prot)) {
|
|
|
vunmap(vma->addr);
|
|
|
return -EAGAIN;
|
|
|
}
|
|
@@ -135,14 +135,14 @@ static int __sq_remap(struct sq_mapping *map, unsigned long flags)
|
|
|
* @phys: Physical address of mapping.
|
|
|
* @size: Length of mapping.
|
|
|
* @name: User invoking mapping.
|
|
|
- * @flags: Protection flags.
|
|
|
+ * @prot: Protection bits.
|
|
|
*
|
|
|
* Remaps the physical address @phys through the next available store queue
|
|
|
* address of @size length. @name is logged at boot time as well as through
|
|
|
* the sysfs interface.
|
|
|
*/
|
|
|
unsigned long sq_remap(unsigned long phys, unsigned int size,
|
|
|
- const char *name, unsigned long flags)
|
|
|
+ const char *name, pgprot_t prot)
|
|
|
{
|
|
|
struct sq_mapping *map;
|
|
|
unsigned long end;
|
|
@@ -177,7 +177,7 @@ unsigned long sq_remap(unsigned long phys, unsigned int size,
|
|
|
|
|
|
map->sq_addr = P4SEG_STORE_QUE + (page << PAGE_SHIFT);
|
|
|
|
|
|
- ret = __sq_remap(map, pgprot_val(PAGE_KERNEL_NOCACHE) | flags);
|
|
|
+ ret = __sq_remap(map, prot);
|
|
|
if (unlikely(ret != 0))
|
|
|
goto out;
|
|
|
|
|
@@ -309,8 +309,7 @@ static ssize_t mapping_store(const char *buf, size_t count)
|
|
|
return -EIO;
|
|
|
|
|
|
if (likely(len)) {
|
|
|
- int ret = sq_remap(base, len, "Userspace",
|
|
|
- pgprot_val(PAGE_SHARED));
|
|
|
+ int ret = sq_remap(base, len, "Userspace", PAGE_SHARED);
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
} else
|