9 #include <linux/kernel.h>
10 #include <linux/errno.h>
11 #include <linux/types.h>
16 #define ESSA_SET_STABLE 1
17 #define ESSA_SET_UNUSED 2
19 static int cmma_flag = 1;
26 if (
strcmp(parm,
"yes") == 0 ||
strcmp(parm,
"on") == 0) {
39 register unsigned long tmp asm(
"0") = 0;
45 " .insn rrf,0xb9ab0000,%1,%1,0,0\n"
49 :
"+&d" (
rc),
"+&d" (
tmp));
54 static inline void set_page_unstable(
struct page *
page,
int order)
58 for (i = 0; i < (1 <<
order); i++)
59 asm volatile(
".insn rrf,0xb9ab0000,%0,%1,%2,0"
69 set_page_unstable(page, order);
72 static inline void set_page_stable(
struct page *page,
int order)
76 for (i = 0; i < (1 <<
order); i++)
77 asm volatile(
".insn rrf,0xb9ab0000,%0,%1,%2,0"
87 set_page_stable(page, order);
107 set_page_stable(page, order);
109 set_page_unstable(page, order);
112 spin_unlock_irqrestore(&zone->
lock, flags);