--- firegl_public.c	2012-12-26 14:53:14.843334069 +0700
+++ firegl_public.c.new	2012-12-26 15:23:23.220996869 +0700
@@ -3892,7 +3892,11 @@
                 KCL_DEBUG_ERROR(REMAP_PAGE_RANGE_STR " failed\n");
                 return -EAGAIN;
             }
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
             vma->vm_flags |= VM_SHM | VM_RESERVED; /* Don't swap */
+#else
+            vma->vm_flags |= VM_SHM | VM_DONTEXPAND | VM_DONTDUMP; /* Don't swap */
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
             vma->vm_ops = &vm_ops;
 			break;
 
@@ -3922,14 +3926,22 @@
                 KCL_DEBUG_ERROR(REMAP_PAGE_RANGE_STR " failed\n");
                 return -EAGAIN;
             }
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
             vma->vm_flags |= VM_SHM | VM_RESERVED; /* Don't swap */
+#else
+            vma->vm_flags |= VM_SHM | VM_DONTEXPAND | VM_DONTDUMP; /* Don't swap */
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
             vma->vm_ops = &vm_ops;
             }
 			break;
 #endif                    
 
         case __KE_SHM:
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
             vma->vm_flags |= VM_SHM | VM_RESERVED; /* Don't swap */
+#else
+            vma->vm_flags |= VM_SHM | VM_DONTEXPAND | VM_DONTDUMP; /* Don't swap */
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
             vma->vm_ops = &vm_shm_ops;
             break;
 
@@ -3937,7 +3949,11 @@
 
             pages = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
             vma->vm_flags |= VM_RESERVED;
+#else
+            vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
 
             //vma->vm_flags |=  VM_SHM | VM_LOCKED; /* DDDDDDDDDDon't swap */
             //vma->vm_mm->locked_vm += pages; /* Kernel tracks aqmount of locked pages */
@@ -3946,14 +3962,22 @@
 
         case __KE_CTX:
             pages = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
             vma->vm_flags |= VM_LOCKED | VM_SHM | VM_RESERVED; /* Don't swap */
+#else
+            vma->vm_flags |= VM_LOCKED | VM_SHM | VM_DONTEXPAND | VM_DONTDUMP; /* Don't swap */
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
             vma->vm_mm->locked_vm += pages; /* Kernel tracks aqmount of locked pages */
             vma->vm_ops = &vm_ctx_ops;
             break;
 
         case __KE_PCI_BQS:
             pages = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
             vma->vm_flags |= VM_LOCKED | VM_SHM | VM_RESERVED; /* Don't swap */
+#else
+            vma->vm_flags |= VM_LOCKED | VM_SHM | VM_DONTEXPAND | VM_DONTDUMP; /* Don't swap */
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
             vma->vm_mm->locked_vm += pages; /* Kernel tracks aqmount of locked pages */
             vma->vm_ops = &vm_pci_bq_ops;
             break;
@@ -3984,9 +4008,17 @@
                     return -EAGAIN;
                 }
 #ifdef __x86_64__
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
                 vma->vm_flags |= VM_RESERVED;
 #else
+                vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
+#else
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
                 vma->vm_flags |= VM_SHM | VM_RESERVED; /* Don't swap */
+#else
+                vma->vm_flags |= VM_SHM | VM_DONTEXPAND | VM_DONTDUMP; /* Don't swap */
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
 #endif
                 vma->vm_ops = &vm_ops;
             }
@@ -4015,9 +4047,17 @@
                     return -EAGAIN;
                 }
 #ifdef __x86_64__
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
                 vma->vm_flags |= VM_RESERVED;
 #else
+                vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
+#else
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
                 vma->vm_flags |= VM_SHM | VM_RESERVED; /* Don't swap */
+#else
+                vma->vm_flags |= VM_SHM | VM_DONTEXPAND | VM_DONTDUMP; /* Don't swap */
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
 #endif
                 vma->vm_ops = &vm_agp_bq_ops;
             }
@@ -4025,7 +4065,11 @@
 #endif /* __AGP__BUILTIN__ */
 
         case __KE_KMAP:
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
 		    vma->vm_flags |= VM_SHM | VM_RESERVED;
+#else
+		    vma->vm_flags |= VM_SHM | VM_DONTEXPAND | VM_DONTDUMP;
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
             vma->vm_ops = &vm_kmap_ops;
             if (readonly && (vma->vm_flags & VM_WRITE))
             {
@@ -4046,7 +4090,11 @@
 #endif            
             // fall through
          case __KE_GART_CACHEABLE:
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
              vma->vm_flags |= VM_RESERVED;
+#else
+             vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
              vma->vm_ops = &vm_gart_ops;
              break;
         default:
