diff options
Diffstat (limited to 'include/linux/kvm_host.h')
-rw-r--r-- | include/linux/kvm_host.h | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 07226f820e6c..d2b897ee3ac4 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
@@ -49,28 +49,34 @@ | |||
49 | #define KVM_MAX_MMIO_FRAGMENTS \ | 49 | #define KVM_MAX_MMIO_FRAGMENTS \ |
50 | (KVM_MMIO_SIZE / KVM_USER_MMIO_SIZE + KVM_EXTRA_MMIO_FRAGMENTS) | 50 | (KVM_MMIO_SIZE / KVM_USER_MMIO_SIZE + KVM_EXTRA_MMIO_FRAGMENTS) |
51 | 51 | ||
52 | #define KVM_PFN_ERR_FAULT (-EFAULT) | 52 | /* |
53 | #define KVM_PFN_ERR_HWPOISON (-EHWPOISON) | 53 | * For the normal pfn, the highest 12 bits should be zero, |
54 | #define KVM_PFN_ERR_BAD (-ENOENT) | 54 | * so we can mask these bits to indicate the error. |
55 | */ | ||
56 | #define KVM_PFN_ERR_MASK (0xfffULL << 52) | ||
57 | |||
58 | #define KVM_PFN_ERR_FAULT (KVM_PFN_ERR_MASK) | ||
59 | #define KVM_PFN_ERR_HWPOISON (KVM_PFN_ERR_MASK + 1) | ||
60 | #define KVM_PFN_ERR_BAD (KVM_PFN_ERR_MASK + 2) | ||
55 | 61 | ||
56 | static inline int is_error_pfn(pfn_t pfn) | 62 | static inline bool is_error_pfn(pfn_t pfn) |
57 | { | 63 | { |
58 | return IS_ERR_VALUE(pfn); | 64 | return !!(pfn & KVM_PFN_ERR_MASK); |
59 | } | 65 | } |
60 | 66 | ||
61 | static inline int is_noslot_pfn(pfn_t pfn) | 67 | static inline bool is_noslot_pfn(pfn_t pfn) |
62 | { | 68 | { |
63 | return pfn == -ENOENT; | 69 | return pfn == KVM_PFN_ERR_BAD; |
64 | } | 70 | } |
65 | 71 | ||
66 | static inline int is_invalid_pfn(pfn_t pfn) | 72 | static inline bool is_invalid_pfn(pfn_t pfn) |
67 | { | 73 | { |
68 | return !is_noslot_pfn(pfn) && is_error_pfn(pfn); | 74 | return !is_noslot_pfn(pfn) && is_error_pfn(pfn); |
69 | } | 75 | } |
70 | 76 | ||
71 | #define KVM_ERR_PTR_BAD_PAGE (ERR_PTR(-ENOENT)) | 77 | #define KVM_ERR_PTR_BAD_PAGE (ERR_PTR(-ENOENT)) |
72 | 78 | ||
73 | static inline int is_error_page(struct page *page) | 79 | static inline bool is_error_page(struct page *page) |
74 | { | 80 | { |
75 | return IS_ERR(page); | 81 | return IS_ERR(page); |
76 | } | 82 | } |