add attribute converted flag
Change-Id: I215e42fa87752d16b8c9744b02d063098cba0af7
This commit is contained in:
committed by
Masamichi Takagi
parent
ddde519263
commit
98aa633856
@@ -312,6 +312,8 @@ enum ihk_mc_pt_attribute {
|
|||||||
PTATTR_FOR_USER = UL(1) << (PHYS_MASK_SHIFT - 1),
|
PTATTR_FOR_USER = UL(1) << (PHYS_MASK_SHIFT - 1),
|
||||||
/* WriteCombine */
|
/* WriteCombine */
|
||||||
PTATTR_WRITE_COMBINED = PTE_ATTRINDX(2),
|
PTATTR_WRITE_COMBINED = PTE_ATTRINDX(2),
|
||||||
|
/* converted flag */
|
||||||
|
ARCH_PTATTR_FLIPPED = PTE_PROT_NONE,
|
||||||
};
|
};
|
||||||
extern enum ihk_mc_pt_attribute attr_mask;
|
extern enum ihk_mc_pt_attribute attr_mask;
|
||||||
|
|
||||||
|
|||||||
@@ -917,6 +917,7 @@ enum ihk_mc_pt_attribute attr_mask =
|
|||||||
| PTATTR_FILEOFF
|
| PTATTR_FILEOFF
|
||||||
| PTATTR_LARGEPAGE
|
| PTATTR_LARGEPAGE
|
||||||
| PTATTR_NO_EXECUTE
|
| PTATTR_NO_EXECUTE
|
||||||
|
| ARCH_PTATTR_FLIPPED
|
||||||
;
|
;
|
||||||
#define ATTR_MASK attr_mask
|
#define ATTR_MASK attr_mask
|
||||||
|
|
||||||
@@ -967,14 +968,17 @@ static unsigned long attr_to_lattr_not_flip(enum ihk_mc_pt_attribute attr, int l
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned long attr_to_l4attr(enum ihk_mc_pt_attribute attr){ return attr_to_l4attr_not_flip(attr ^ attr_flip_bits); }
|
|
||||||
static unsigned long attr_to_l3attr(enum ihk_mc_pt_attribute attr){ return attr_to_l3attr_not_flip(attr ^ attr_flip_bits); }
|
|
||||||
static unsigned long attr_to_l2attr(enum ihk_mc_pt_attribute attr){ return attr_to_l2attr_not_flip(attr ^ attr_flip_bits); }
|
|
||||||
static unsigned long attr_to_l1attr(enum ihk_mc_pt_attribute attr){ return attr_to_l1attr_not_flip(attr ^ attr_flip_bits); }
|
|
||||||
static unsigned long attr_to_lattr(enum ihk_mc_pt_attribute attr, int level)
|
static unsigned long attr_to_lattr(enum ihk_mc_pt_attribute attr, int level)
|
||||||
{
|
{
|
||||||
return attr_to_lattr_not_flip(attr ^ attr_flip_bits, level);
|
if (!(attr & ARCH_PTATTR_FLIPPED)) {
|
||||||
|
attr = (attr ^ attr_flip_bits) | ARCH_PTATTR_FLIPPED;
|
||||||
|
}
|
||||||
|
return attr_to_lattr_not_flip(attr, level);
|
||||||
}
|
}
|
||||||
|
static unsigned long attr_to_l4attr(enum ihk_mc_pt_attribute attr){ return attr_to_lattr(attr, 4); }
|
||||||
|
static unsigned long attr_to_l3attr(enum ihk_mc_pt_attribute attr){ return attr_to_lattr(attr, 3); }
|
||||||
|
static unsigned long attr_to_l2attr(enum ihk_mc_pt_attribute attr){ return attr_to_lattr(attr, 2); }
|
||||||
|
static unsigned long attr_to_l1attr(enum ihk_mc_pt_attribute attr){ return attr_to_lattr(attr, 1); }
|
||||||
|
|
||||||
static int __set_pt_page(struct page_table *pt, void *virt, unsigned long phys,
|
static int __set_pt_page(struct page_table *pt, void *virt, unsigned long phys,
|
||||||
enum ihk_mc_pt_attribute attr)
|
enum ihk_mc_pt_attribute attr)
|
||||||
|
|||||||
Reference in New Issue
Block a user