linux/mm/mempolicy.c
<<
>>
Prefs
   1/*
   2 * Simple NUMA memory policy for the Linux kernel.
   3 *
   4 * Copyright 2003,2004 Andi Kleen, SuSE Labs.
   5 * (C) Copyright 2005 Christoph Lameter, Silicon Graphics, Inc.
   6 * Sugject   
4 0.4"49c#L4" id="L4" class="line" vvvvvvvvvvvvvvvvv* vm_idrmal_page() filters out zero

  0 1 5  6  5  1 37 6 37 6<"> 37 6 150 3 37 6<"> 37 6 150	 asmu_notifier h* Su c503" c50* Cop"> 37 6<"> 37 6 150 Su#include < id="L5504" c50 id="ame7="L6"> 37 6<"> 37 6 150m-arm/tlbflush.h|includ505" c505L6"  id="L4" class="line" nam15=k if itn50aillicy.c#L5" id="L5" c506" c50ine" "> 37 6 37 if (action="ajcode=vlags3
  v2.6.20.4
507" c50c#L5""> 37 6<<<<<7 6<"> 37 6
  o.150"
	or	offset i5d >
	  m508" c50y.c#L"> 37 6<<<<<<<< 5  6  0 1 37 6<<<<<<<<  5  1 37 6<} while (action="ajcode= tmss/a> 15  3 37 6<"> 15ssl.
 15  5 5  6 37 6 37 unsigned long action="ajcode=ad5rss/a> 5  6 37 6<<<<<<<< 5  6
	  m5app>
51y.c#L"> 37 6<<<<<<<< 5  6 5  6 25  1 37 6  5  2 15  3 2 52* Cop"> 37 6 15sut t>
  with 
	  first 5nodec52 id="ame7="L6do {"> 5  6 37 6 37 6 37 action="ajcode=split_hugm_page_pm5ss/a>
58 6 37 6<<<<<<<< oc" namagspps= &n= ~acti4loca526.cy.came7="L6"> 37 6 5  6 37 6<<<<<<<<<<<<<<<<<<<< action="ajcode=vlags3 37 6<"> 37 6<"> 37 6<} while (action="ajcode= mdss/a>
 2532* Cop"> 37 6<"> 14first,	or	when o5la Vnu54y.c#532 id="} id="L4" class="line" nam54ierleave54slis whatef="mm/always>54ivcy5305L6"  id="L4" class="line" nam14ck if it54still>doesxby, ahem,lde54nv i543ine"/eturn  action="ajcode=in of no/a> 5  6 37 6<<<<<<<< unsigned long action="ajcode=ad5rss/a> 5  6 5  6 37 6 5  6 5  6 37 66unsigned long action="ajcode=nex/ss/a>
 	whe 14nhandledi When processl54 5  6 37 6 37 action="ajcode=nex/ss/a>54y getsep 37 6<<<<<<<< 37 6 5  6 37 6<<<<<<<<<<<<<<<<<<<< action="ajcode=vlags3 54  2 37 666666666<"> 37 6<} while (action="ajcode= u5ss/a> 37 6<"> 57 654ablel.
 37 6<<<<<<<< unsigned long action="ajcode=ad5rss/a> 5  6 59 6 5  6 540 1<556.cy.came7="L6"> 37 6 5  6 5  6 6  2
 37 66unsigned long action="ajcode=nex/ss/a> 6  4 5  6 37 6 37 action="ajcode=nex/ss/a>54* Su#include < id="L54" in562c#L5""> 37 6<<<<<<<< 37 6<<<<<<<<#L6" 0ge 37 6 5  6">
	 a54ighss= h* Su cla" id="L54" cl578.c#L6ame7="L6"> 37 6<<<<<<<<<<<<<<<<<<<< action="ajcode=vlags3">
	 a54ugetlb h* Su cla" id="L54" cl575#L6" ame7="L6"> 37 666666666<"> 37 6<} while (action="ajcode=gmdss/a>
	 asc54edih* Su cla" id="L5" c54ass=572* Cop"> 37 6<">54ring h* Su cla" id="L5"54clas579c#L4" id="L4" class="line"nr the Linux kernel.


">
	54ai5derrupt h* Su cla" i54="L5584  1
">
	 ac54 patih* Su cla" id="L5"54clas584*

	 asc54 h* Su cla" id="L5" cla54s="l584#L6" id="L6" class="line" na ="Larchitec> 29ht choice, it wtillnetd6

 
	aiic54roc_fs h* Su cla" id="L54" cl5485L6" id="L6" class="line" namamee="L6"> 5  6 37 6<<<<<7 6<"> 37 6 unsigned long action="ajcode=ad5rss/a>4>" nam5954 h* Su cla" id="L5" cla54s="l548y.c# {"> 5  6">
	 54syscalls h* Su cla" id=54L5" 5920.c#L"> 37 6">
	 ac54asm_inan c h* Su cla" i54="L55492 Cop"> 37 6 action="ajcode=r_supdati5ss/a>ionass/a>ioneass=*action="ajcode=vmass/a>
	 asc54
	 asmu_notifier h* Su 54la" 549* Cop"> 37 645al node54* Su#include < id="L54" +a549 id="ame7="L6"> 37 6 action="ajcodecount_ vm_uvm_evinegs3 
	aiic54sm-arm/tlbflush.h|inclu54ecas5975L6"  id="L4" class="line" nam545k if it54m-arm/uaccess.h|include54asm-549ine" "> 37 6<">
  v2.6.20.454 0.4593c#L5"} id="L4" class="line" nam54.
	 arma549h* Su cla" id="L5" cla549="l549" id# 5  6  0 1 65  1 37 6<"> 37 6 unsigned long action="ajcode=ad5rss/a> 5  6 650 3 37 6<"> 650	 asmu_notifier h* Su 6503" 601* Cop} id="L4" class="line" nam6504"L3"> 650 Su#include < id="L6504" 650 id=#&e ef7 a> 5  6 650m-arm/tlbflush.h|inclu6505" 6505L6"  id="L4" class="line" nam65=k if it650aillicy.c#L5" id="L5" 6506" 602ine"  Copyright 2005 Christr the Linux kernel.

  v2.6.20.46507" 602c#L4" id="L4" class="line" n*Cchec6

  o.650"
	or	offset i5d >
	  6508" 602" id="L4" class="line" nam49*Iif

  o.65aam10="L1">  0 1
 65  1 5  6 5  6 65  3 5  6 65ssl.
 37 6<"> 37 6 5  6 65  5 5  6aillicy.c#L5" id="L5" 65lass651ine" "> 37 6(struct action="ajcode=vm_area_structss/a>
  o.656"
	or	offset i5d >
	  65app>6148=includecasm-alpha/tlbflush.h65=9>
  o.65rocessl. 65  1<6520.c#L"> 37 6 5  6 65  2 37 6<"> 65  3 37 6 65" class="line" nam2e="L65"> 2652* Cop"> 37 6 5  6 65sut t>
  with 
	  first65node629 id="ame7="L6"> 37 6 unsigned long action="ajcode=e =vmass/a> 37 6 37 37 6<<<<<<< 37 6
  o.65de=nex/ss/a>
  o.6" namagspps= &n= ~act64loca626.cy.came7="L6"> 37 6p"> 37 6de64nv i6395=includecasm-alpha/tlbflush.h64i5la Vnu64when younhave a non>dee64v ic630#L6" ame7="L6"> 37 6 5  6 37 6 ame7="L6"> 37 6
 2630* Cop"> 37 6<"> 37 66666666666666666<"> 64first,	or	when o5la Vnu64y.c#630 id="ame7="L6"> 37 6<"> 37 6 37 6<"> 37 666666666<">doesxby, ahem,lde64nv i632ine" "> 37 6 37p} id="L4" class="line" nam64matv2.s>648 6 kernelalloc64tv2.63s i5stdivcy.c#L6" 0ge 37 666666666gotog action="ajcode=nex/ss/a> 37 6 5  6 37 6 ame7="L6"> 37 6 action="ajcodechrang_prot_nuvmass/a>
 	whe 37 6<"> 37 666666666gotog action="ajcode=nex/ss/a> 64nhandledi When processl64 37 6p} id="L4" class="line" nam64cerleave64s/swap i5sicy.c#L3" id=64L3" 6405L6"  id="L4" class="line" nam64spolxand647 6 37 6 3764y getsep 37 6<<<<<<<<<<<<<  (action="ajcode=vlags3<*action="ajcode=vm_&pigraablgess/a> 5  6 5  6 37 6<<<<<<<< action="ajcodeer5rss/a> 5  6 64  2 37 6666666666ame7="L6"> 37 6<<<<<<<< action="ajcode=vlags3 37 6 ame7="L6"> 37 6 5  6 37 6<"> 37 666666666666666666action="ajcodefiristss/a> 64   5 37 6<"> 37 666666666 37 6<"> 37 6p} id="L4" class="line" nam64npolxand6457="L6"> 57 6 37 6 37p} id="L4" class="line" nam64satv2.s>64ablel.
 59 6 640 1<656.cy.came7="Lp} id="L4" class="line" nam64rentlyni64luseseprocessl. 64ine" namee="L2"> 6  2
 6  4



 5  6 37 6<<<<<<<<#L6" 0geeeeeeeeeeeeeeeeeeeeeeeee(struct action="ajcode=s="line"ass/a> 5  6">
	 a64ighss= h* Su cla" id="L64" cl678.c#L6ame7="L">
	 a64ugetlb h* Su cla" id="L64" cl675#L6" ame7="L(struct action="ajcode=s="line"ass/a> 37 6(struct action="ajcode=s="line"ass/a>"&vm %lx-%lx/%lx* vmops %p* vmfhile%p*set_n clase%p\n"amee="LL  id="L4" class="line" nam64" 
	aiic64usetih* Su cla" id="L5"64clas6795L6" ame7="L6"> 37 6< action="ajcode=vmass/a> 37 6 37, action="ajcode=vmass/a>64ring h* Su cla" id="L5"64clas672c#L5""> 37 6<<<<<<<<< action="ajcode=vmass/a>">
	64ai5derrupt h* Su cla" i64="L56820.c#L"> 37 6 37 6<">
	 asc64 h* Su cla" id="L5" cla64s="l689* Cop"> 37 6 5  6 37 6 action="ajcodeer5rss/a> 37 6 37 6 37,,,,,,,,gotog action="ajcodeer5_ou_tss/a> 37 6p} id="L4" class="line" nam64>" nam5964 h* Su cla" id="L5" cla64s="l6848=includecasm-alpha/tlbflush.h64L="L4" c64securit" h* Su cla" id=64L5" 6849id="ame7="L6action="ajcodeol 5ss/a>">
	 64syscalls h* Su cla" id=64L5" 6920.c#L"> 37 6 5  6">
	 ac64asm_inan c h* Su cla" i64="L5692d="L6 id="L4" class="line" nam64">
	 asc64
	 asmu_notifier h* Su 64la" 692* Cop"> 37 6<"> 
	aiic64sm-arm/tlbflush.h|inclu64ecas695#L6" ame7="L6action="ajcode=tlb_pu_tss/a> 37 6<">
  v2.6.20.464 0.4693c#L5"} id="L4" class="line" nam64.
	 arma649h* Su cla" id="L5" cla649="l6948=includecasm-alpha/tlbflush.h64i"line" 64aam10="L1">  0 1 5  6 75  1 5  6 75upih* Su cla" id="L5" c7501" 705#L6" ame7="L6"> 37 66666666 unsigned long action="ajcode=e 5ss/a> 750 3 5  6 750	 asmu_notifier h* Su 7503" 702* Cop"> 37 6(struct action="ajcode=vm_area_structss/a> 750 Su#include < id="L7504" 704* Cop"> 37 6(struct action="ajcode=vm_area_structss/a> 750m-arm/tlbflush.h|inclu7505" 705* Cop"> 37 6(struct action="ajcode=vm_area_structss/a> 37 6
  v2.6.20.47507" 707#L6" ame7="L6action="ajcode_goffd_tss/a> 37 6 unsigned long action="ajcodevm/etr_tss/a>
  o.75aam10="L1">  0 1 37 6 unsigned long action="ajcodevm=e 5ss/a> 75  1 75  3 37 6 75ssl.
 37 6<"> 37 6<"> 75  5 75 oveaillicy.c#L5" id="L5" 75lass751ine" "> 37 6 37 6<<<<<<<<6action="ajcode=pevess/a>
	  75app>7148=includecasm-alpha/tlbflush.h75=9>
  o.75rocessl. 5  6 75  1<728.c#L6ame7="L6"> 37 6 action="ajcode=nex/ss/a> 75  2 37 6 action="ajcodevm/etr_tss/a> 75  3 37 6 ame7="L action="ajcodevm=e 5ss/a> 75" class="line" nam2e="L75"> 2724#L6"p id="L4" class="line" nam75e="L5"> 75sut t>
  with 
	  first75node729 id="ame7="L6"> 37 6 37 6<"> 37 6 37 6<<<<<<<< action="ajcode_goff5ss/a>
  o.7" namagspps= &n= ~act74loca726.cy.came7="L6"> 37 6 action="ajcode=pevess/a> 5  6 37 6<<<<<<<<<<<<<<<<<< action="ajcode=vmass/a> 5  6 74when younhave a non>dee74v ic730#L6" ame7="L6"> 37 6<<<<<<<<<<<<<<<<<< action="ajcodenew_"liess/a> 37 6 ame7="L 5  6 37 6<"> 37 666666666 action="ajcode=vmass/a> 74first,	or	when o5la Vnu74y.c#730 id="ame7="L6"> 37 6<"> 37 6 action="ajcode=nex/ss/a> 37 6<"> 37 6doesxby, ahem,lde74nv i732ine" "> 37 6 37p} id="L4" class="line" nam74matv2.s>748 6 37 6<<<<<<<< 5  6 37 6 action="ajcodeer5rss/a> 37 666666666 37 6<<<<<<<<<<<<<<< 37 6p} id="L4" class="line" nam74 #L3" id74  3 37 6 ame7="L 5  6 37 6<"> 37 666666666 action="ajcodeer5rss/a> 74nhandledi When processl74 37 666666666 37 6<"> 37 666666666gotog action="ajcodeou_tss/a> 37 6 37p} id="L4" class="line" nam74matv2.s>74y getsep 37 6<<<<<<<< action="ajcodeer5rss/a> 37 666666666gotog action="ajcodeou_tss/a> 74  2 37 6<"> 74   5 57 6
74ablel.

 59 6

 740 1<759y.c#L5" id="L5" class="line"*withno the PF_* fvla bits) oanspaoryfC6ion hot jcod patheOsthe Linux kernel.
 74ine" namee="L2"> 6  2

 6  4

ion is why this rou_L3" has  teffunnyclasssthe Linux kernel.

74* Su#include < id="L74" in762c#L4" id="L4" class="line" nsthe Linux kernel.


">
	 a74ighss= h* Su cla" id="L74" cl774  1">
	 a74ugetlb h* Su cla" id="L74" cl774 4  2 5  6 5  6 37 6 37(action="ajcode=ess/a>74ring h* Su cla" id="L5"74clas772c#L5""> 37 6 5  6">
	74ai5derrupt h* Su cla" i74="L57895=includecasm-alpha/tlbflush.h74>
	 ai5i74 h* Su cla" id="L5" cla74s="l781#L6"/eturn  5  6
	 asc74 h* Su cla" id="L5" cla74s="l789* Cop"> 37 6 action="ajcode=tlb_fix_
 5  6 5  6 37 6<<<<<<<<#L6" 0geeeeee action="ajcodenoodeL5" _tss/a> 5  6">
	 74syscalls h* Su cla" id=74L5" 7920.c#L"> 37 6(struct action="ajcode=s="line"ass/a> 37 6
	 asc74
	 asmu_notifier h* Su 74la" 792* Cop"> 37 6 
	aiic74sm-arm/tlbflush.h|inclu74ecas7995L6" ame7="L 37 6 37<">
  v2.6.20.474 0.479.c#L5p id="L4" class="line" nam74.
	 arma749h* Su cla" id="L5" cla749="l798* 37 6  0 1 5  6 85  1 37 6 action="ajcodereness/a> 85upih* Su cla" id="L5" c8501" 805#L6" ame7="L6"> 37 6gotog action="ajcodeou_tss/a> 850 3 37 6"} id="L4" class="line" nam8503"L3"> 850	 asmu_notifier h* Su 8503" 802* Cop"> 37 6  Copyright 2005 Christr the Linux kernel.
 850 Su#include < id="L8504" 808 id= id="L6" class="line" nnnnnnnnnr previne chrane g our*span>

 85sm-arm/tlbflush.h|inclu8505" 8085L6" id="L6" class="line" nnnnnnnnnr is use g itOsthe Linux kernel.


  v2.6.20.48507" 802c#L4" id="L4" class="line" nnnnnnnnr withnnoe'mm'Osthe Linux kernel.
 5  6  0 1 85  1 37 6 action="ajcodedown_wriddess/a> 85  3 37 6 85ssl.
 37 6 5  6 85  5 37 6 action="ajcodetaskaunlockess/a> 85 ove 37 6aillicy.c#L5" id="L5" 85lass812ine" "> 37 6 37,,,,,,,, action="ajcodeup_wriddess/a> 37 6<<<<<<<<6action="ajcode=tlb_pu_tss/a>
	  85app>816y.c#L"> 37 6<<<<<<<
  o.85rocessl. 85  1<8220.c#L"> 37 6 85  2 85  3 37 6 85" class="line" nam2e="L85"> 2829* Cop"> 37 6 85sut t>
  with 
	  first85node829 id="ame7="L6"> 6action="ajcode=="mm_weigh_tss/a> 37 66action="ajcodecurr" ness/a> 37 6 37 6
  o.8" namagspps= &n= ~act84loca826.cy.{"> 5  6 37 6 84when younhave a non>dee84v ic831#L6" ame7="L6action="ajcodereness/a>
 2839* Cop"> 37 6 action="ajcodeNODEMASK_SCRATCH_FREVE3 84first,	or	when o5la Vnu84y.c#830 id="ame7="L<">doesxby, ahem,lde84nv i832ine"geass=)p id="L4" 7m5ass=(584matv2.s>848 6
 kernelalloc84tv2.832" id="L4" class="line" nam49*R">


  o.84gn


 84d="L3" class="line" nam84e="L844 4  2 5  6
 	whe 5  6 84nhandledi When processl84 37 6 37<">84y getsep 5  6 37 6  Copyright 2005 Christr Fal< throughmemamee="L6"> 5  6 84  2 37 6 ame7="L *action="ajcode=="mm/ss/a> 37 6<"> 37 6breakLp id="L4" class="line" nam84e="L5"> 84   5 37 6 57 6 37 6 37,,,,,,,, action="ajcode&nod_&et/ss/a>84ablel.
 37 6<<<<<<<<6 Copyright 2005 Christr ion emamee="L6"> 5  6 59 6 840 1<856.cy.came7="Ldeefaul:} id="L4" class="line" nam84rentlyni84luseseprocessl. 37 6 action="ajcodeBUG/ss/a> 84ine" namee="L2"> 6  2
 6  4 5  6 37 6(struct action="ajcodepangess/a>84* Su#include < id="L84" in862c#L5""> 37 6">
	 a84ighss= h* Su cla" id="L84" cl8720.c#L"> 37 6 5  6">
	 a84ugetlb h* Su cla" id="L84" cl875#L6" ame7="L6"> 37 6 action="ajcodeer5rss/a> 37 6 ame7="L action="ajcodeput_pangess/a> 37 6"} id="L4" class="line" nam84"al node84nodemaskih* Su cla" id=84L5" 870 id="ame7="L<">84ring h* Su cla" id="L5"84clas872c#L4" id="L4" class="line"tr*R">rieve NUMAfn>
 5  6 5  6 37 66666666666666 unsigned long action="ajcodeadd5rss/a>">
	84ai5derrupt h* Su cla" i84="L58895=in {"> 5  6 37 6(struct action="ajcode=pm_structss/a>
	 asc84 h* Su cla" id="L5" cla84s="l889* Cop"> 37 6(struct action="ajcode=vm_area_structss/a> 37 6(struct action="ajcode=s="line"ass/a> 37 684* Su cla" id="L5" class84"lin882c#L5""> 37 6<<<<<<<<~( unsigned lon)  action="ajcode&MPOLF_NODEs3 37 6<<<<<<<<<"> 5  6">
	 84syscalls h* Su cla" id=84L5" 8920.c#L"> 37 6 5  6 37 6 37 6 ame7="L<<<<<<<<<">
	 asc84
	 asmu_notifier h* Su 84la" 890* Cop"> 37 6<"> 37 6 *action="ajcode"line"ass/a> 5  6 37 6 action="ajcodetaskalockess/a> 
	aiic84sm-arm/tlbflush.h|inclu84ecas8995L6" ame7="L6"> 37 6 *action="ajcode=eL5"ess/a> 37 6 37 action="ajcodetaskaunlockess/a>
  v2.6.20.484 0.4892c#L5""> 37 6<<<<<<<<<"> 37 6"} id="L4" class="line" nam843e.2For	84aam10="L1">  0 1 5  6 95  1 37 6 5  6 95upih* Su cla" id="L5" c9501" 905#L6" ame7="L6"> 37 6" id="L4" class="line"tr the Linux kernel.
 950 3
 37 6  Do NOT fal< backs totaskepo

 950	 asmu_notifier h* Su 9503" 904#L6" id="L6" class="line" 4 ame7="L6"> 37 6  &vm/sh_ardepo

 95* Su#include < id="L9504" 908 id= id="L6" class="line" nnnnnnnnn6"> 37 6  waint to<">
 95sm-arm/tlbflush.h|inclu9505" 9085L6" id="L6" class="line" nnnnnnnnn6"> 37 6 mamee="L6"> 5  6 37 6 37 action="ajcodedown_are 5ss/a>
  v2.6.20.49507" 902c#L5""> 37 6<<<<<<<<6action="ajcode=vmass/a>ions3ioneass= action="ajcode=mmss/a> 5  6  0 1 37 666666666 action="ajcodeup_are 5ss/a> 95  1 37 666666666<"> 37 6p} id="L4" class="line" nam950="L3"> 95  3 37 6 ame7="L 95ssl.
 37 6<"> 37 666666666 action="ajcode"liess/a> 95  5 37 6 5  6 95 ove 37 666666666 action="ajcode"liess/a>aillicy.c#L5" id="L5" 95lass912ine" "> 37 6}  37 6<<<<<<<<<">
	  95app>9148=includecasm-alpha/tlbflush.h95=9>
  o.95rocessl. 95  1<928.c#L6ame7="L6"> 37 6 action="ajcode"liess/a> 5  6 95  2 95  3 37 6 5  6 95" class="line" nam2e="L95"> 2920* Cop"> 37 6<"> 37 6 5  6 95sut t>
  with 
	  first95node929 id="ame7="L6"> 7="L6"> 37 6 action="ajcodeer5rss/a> 37 6<"> 37 6 37 6 37,,,,,,,,,,,,,,,,gotog action="ajcodeou_tss/a> 37 6<<<<<<<<<<<<<<<< *action="ajcode"line"ass/a>
  o.9" namagspps= &n= ~act94loca926.cy.came7="L6"> 37 666666666666667 6 action="ajcode"liess/a> 5  6 37 666666666 *action="ajcode"line"ass/a> 94when younhave a non>dee94v ic930#L6" ame7="L6"> 37 6p  5  6 94"L3" class="line" namee94"L3"9362 Cop"> 37 6 ame7="L<<<<<<<< action="ajcodeer5rss/a>
 2930* Cop"> 37 6<"> 37 666666666gotog action="ajcodeou_tss/a> 94first,	or	when o5la Vnu94y.c#939 id="ame7="L6"> 7="Lp} id="L4" class="line" nam94=erleave94slis whatef="mm/always>94ivcy9395L6" ame7="Lp  5  6 37 6 37 *action="ajcode"line"ass/a>948 6 37 6<<<<<<<<<<<<<<< 37 6 ame7="L<<<<<<<< action="ajcode"liess/a> kernelalloc94tv2.93s i5stdivcy.c#L6" 0ge  id="L4" class="line"tr the Linux kernel.

  o.94gn
 37 6 37  Inthenal*span>

 37 6 37  3tef<>

 94d="L3" class="line" nam94e="L944 4  2 37 6 37 mamee="L6"> 5  6 37 6 ame7="L *action="ajcode"line"ass/a>
 	whe 37 6"} id="L4" class="line" nam94e="L5"> 94nhandledi When processl94 5  6 37 6 37 action="ajcodeup_are 5ss/a>94y getsep 37 6<<<<<<<<6action="ajcode=vmass/a> 37 6"} id="L4" class="line" nam943e.2For	94catv2.pdon't getep<94spie946.cy.{"> 5  6 37 6 94  2 5  6 37 6 ame7="L 5  6 37 6<"> 37 6 ame7="L *action="ajcode=eL5"ess/a> 94   5 7="Lp  5  6 37 6L"> 37 6 57 6 37 6 37,,,,,,,, action="ajcodeget_n clas_&nodeL5"ess/a>94ablel.
 37 6<<<<<<< 37 6 59 6 940 1<956.cy.came7="L"} id="L4" class="line" nam94rentlyni94luseseprocessl. 94ine" namee="L2"> 6  2
 37 6 6  4 37 6 94aoom much fasder and nh94cy.c969 id="ame7="L6"> 37 6 action="ajcodeup_are 5ss/a>94* Su#include < id="L94" in96.c#L5p id="L4" class="line" nam94Te first94ass="line" h* Su cla" i94="L59648=in#ifdefi action="ajcodeCONFIG_MIGRATIONrss/a>">
	 a94ighss= h* Su cla" id="L94" cl974  1 94ugetlb h* Su cla" id="L94" cl974 4  2 5  6 5  6 37 6<"> 37 6 ame7="LLLLLLLLL unsigned long action="ajcode=vlags3 5  6iongaLpang that6
94ring h* Su cla" id="L5"94clas972c#L4" id="L4" class="line"nnnnnnnnnrmamee="L6"> 5  6 37 6 5  6 37 6 5  6">
	94ai5derrupt h* Su cla" i94="L5988.c#L6ame7="L6"> 37 666666666 action="ajcodelist_ad _taiiess/a>
	 ai5i94 h* Su cla" id="L5" cla94s="l980#L6" ame7="L6"> 37 666666666 action="ajcodeinc_zone_pang_/etugess/a> 37 6 ame7="L<<<<<<<<7="L6"> 37 666666666 action="ajcodepang_is_file_cachgess/a> 37 6<"> 37 6"} id="L4" class="line" nam94"al node94seq_done h* Su cla" id=94L5" 984* Cop"> 37 6"} id="L4" class="line" nam94" 
	aiic94roc_fs h* Su cla" id="L94" cl9895L6""} id="L4" class="line" nam94"k if it94igrate h* Su cla" id="L94" cl982ine"geass=)p id="L4" 7m5ass=(594=atv2.s>94* Su cla" id="L5" class94"lin982c#L5/eturn (struct action="ajcodepangess/a> 5  6">
	 94syscalls h* Su cla" id=94L5" 9920.c#"} id="L4" class="line" nam945
	 ai5i94upih* Su cla" id="L5" c94ass=999#L6"p id="L4" class="line" nam94e#L3" id94asm_inan c h* Su cla" i94="L5994*

	 asc94
	 asmu_notifier h* Su 94la" 994#L6" id="L6" class="line" 4* Migra>eLpangs from onei&nod togaLtargeti&nodOsthe Linux kernel.
edOsthe Linux kernel.
 5  6 5  6 37 6<<<<<<<<<<<<<<<<<<< 5  6  0 1 105=="10="L1">  0 1105=9id="ame7="L6action="ajcodeLIST_HEADE35d/08/98abe5be999ae77c869f3150847e07087a12_3/105==> id="L4" class="line" nam1051="L1"> 105upih* Su cla" id="L5" c105up>1055#L6" ame7="L 105asm_inan c h* Su cla" i105as>1052#L6"p id="L4" class="line" nam1053="L1"> 105
	 asmu_notifier h* Su 105
	>1059* Cop"> 37 6 action="ajcode=="mm_clea5rss/a> 105* Su#include < id="L105* >1050 id="ame7="L6action="ajcode=="m_&et/ss/a> 105sm-arm/tlbflush.h|inclu105sm>10505L6"  id="L4" class="line" nam1056="L1"> 105m-arm/uaccess.h|include105m->1056* 37 6
 105 >
  v2.6.20.4105 >>1052c#L4" id="L4" class="line"nnnnnnnnnr This dogs notd"chgck" 3tefrange but6esfC6
 1059h* Su cla" id="L5" cla1059h>1052" id="L4" class="line" nam4nnnnnnnnr need migra>ion.  BetweenLpasse g in the fu6
 105aam10="L1">  0 11059y.c#L5" id="L5" class="line "> 37 6* a>
 105  1 5  6 105sss:cy.c#L4" id="L4" cl105ss>1051#L6" ame7="L6action="ajcodeVM_BUG_ONrss/a> 105  3 37 6 5  6 105ssl.
1050* Cop"> 37 6<"> 37 666666666 action="ajcode=vlags3 105  5 105 ove10595L6" ame7="L 5  6 105>aillicy.c#L5" id="L5" 105>a>1052ine" "> 37 6 37 action="ajcodeer5rss/a>e_panggs3e_panggeass= & action="ajcode"anglistess/a> 5  6 105	isli5derleavesxbased t105	i>1052c#L5""> 37 6<<<<<<<<<<<<<<< 37 6 ame7="L action="ajcode&IGRATE_SYNCs3 1056"
	or	offset i5d >
	  1056">105s i5stdivcy.c#L6" 0ge 105rocessl.1056.cy.came7="L6"> 37 666666666 action="ajcodeputback_lru_panggs3 105ass="line" nam2e="L1"> 105as>105a* Cop"> 37 6"} id="L4" class="line" nam1051="L1"> 105  2 105  3 37 6<"> 105" class="line" nam2e="L105" >10530.c#"} id="L4" class="line" nam1054="L1"> 105sut t>
  with 
	  first105su>1051 id=p id="L4" class="line" nam1025="L1"> 105tder if bind would2trul105td>10585L6" id="L6" class="line" tr the Linux kernel.
 105des i5stdivcy.c#L6" id=105de>1052ine"  Copyright 2005 Chrisn* MoveLpangs betweenLthe twoi&nod&ets so as togp5eserve 3tef
 1058 6
 105de=nex/ss/a>1052" id="L4" class="line" nam49sthe Linux kernel.
 10" namagspps= &n= ~act10" n>1059y.c#L5" id="L5" class="line"*R">
 104ormallynidmemical d >de104or>104o5L6" id="L6" class="line" nrmamee="L6"> 5  6 104when younhave a non>dee104wh>1049#L6" 5  6 104"L3" class="line" namee104"L>10462 Cop"> 37 6 ame7="L<<<< 104ssl.
1040* Co {"> 5  6 104first,	or	when o5la Vnu104fi>1040 id="ame7="L 104slis whatef="mm/always>104sl>1045 id="ame7="L 104still>doesxby, ahem,lde104st>1046* 37 6 1048 6 104li5derrupt> kernelalloc104li>1048* 37 6e_preamss/a>e_preaeass==p  id="L4" class="line" nam1039="L1"> 104gn
10495L6" ame7="L 104.104.2 Cop"> 37 6 ame7="L<"> 104d="L3" class="line" nam104d=>1049#L6"p id="L4" class="line" nam1042="L1"> 104  3 37 6 104swapp>
 	whe1044#L6"p id="L4" class="line" nam1044="L1"> 104nhandledi When processl104nh>1040 id="ame7="L6action="ajcodeer5rss/a>e_veL5mss/a>e_veL5eass= action="ajcode=mmss/a> 104s/swap i5sicy.c#L3" id=104s/>10495L6" ame7="L 1047 6 37 6 37gotog action="ajcodeou_tss/a> 104y getsep104.c#L5p id="L4" class="line" nam1048="L1"> 1041048* 37 6
 104catv2.pdon't getep<104ca>1049y.c#L5" id="L5" class="line "> 37 6* Find a 'sourcd' bit &et in 'tma' whose
 104"L5" class="line" namee104"L>104"y.c#L5" id="L5" class="line "> 37 6* bit in 'to' is notdalso &et in 'tma'.  Clea5 the found 'sourcd' the Linux kernel.
 104  2 37 6* bit in 'tma', and <">ion. the Linux kernel.
 104rep1044*

 104has  kernelmappedicy.c#104ha>1044#L6" id="L6" class="line" 4 ame7="Lr the Linux kernel.
 104   5
 104* Sugject   
 10457="L6"> 57 61042ine"  Copyright 2005 Chrisnnnnnnnnnr 'sourcd' and 'dest'Lbits are the son , this rea5esents a ncodeahe Linux kernel.
 104ablel.
1042c#L4" id="L4" class="line"nnnnnnnnnr that6wil< bedmigra>iongto itself, so &nLpangs need movdOsthe Linux kernel.
 104"L6"> 59 61042" id="L4" class="line" nam4nnnnnnnnrsthe Linux kernel.
 104ass="line" nam60="L1"> 104as>1049y.c#L5" id="L5" class="line "> 37 6* IfL&nLbits are left in 'tma', or 
 104luseseprocessl.104ly.c#L5" id="L5" class="line "> 37 6* in 'tma' cor5esponds tothe son  bit in 'to', <">
 104ine" namee="L2"> 6  21044 4  2 37 6* (nothiongleft  to&igra>e)Osthe Linux kernel.
 104nign

1044*

 104amee="L4"> 6  41044#L6" id="L6" class="line" 4 ame7="Lr This lets usopickgaLpair ofL&nods  to&igra>e between, such6that the Linux kernel.
 104aoom much fasder and nh104ao>1048 id= id="L6" class="line" nnnnnnnnn* 
 104.c#L3" id="L3" class="l104.c>10485L6" id="L6" class="line" nnnnnnnnn*Lsourcdi&nod,o&inimiziongttefrisk ofLovdrloadiongttefspaory on a the Linux kernel.
 1046y and en1* Su#include 1046y>1042ine"  Copyright 2005 Chrisnnnnnnnnnr &nod that6would happen ed in005iongspaory togaLncodeahe Linux kernel.
 104* Su#include < id="L104* >1042c#L4" id="L4" class="line"nnnnnnnnnr bdfore migra>iongou_goiongspaory sourcdithat6son  &nodOsthe Linux kernel.
 104ass="line" h* Su cla" i104as>1042" id="L4" class="line" nam4nnnnnnnnrsthe Linux kernel.
 104Su cla" id="L5" class="104Su>1049y.c#L5" id="L5" class="line "> 37 6* A se gldoscan ofLtma6 104ighss= h* Su cla" id="L104ig>104iy.c#L5" id="L5" class="line "> 37 6* mostirec="l6-lt;s, d&8ioLpair that6eoved (s != d).  If wedfind a pairsthe Linux kernel.
 104ugetlb h* Su cla" id="L104ug>1044 4  2 37 6* that6notdonly6eoved, but6what'sfbetter,6eoved togan e="ty slot the Linux kernel.
 104mpolih* Su cla" id="L5"104mp>1044*

 104edih* Su cla" id="L5" c104ed>1044#L6" id="L6" class="line" 4 ame7="Lr Otherwise
 104nodemaskih* Su cla" id=104no>1048 id= id="L6" class="line" nnnnnnnnn* mostirec="l6-lt;s, d&8ioLpair that6eoved.  If wedgetia6
 104usetih* Su cla" id="L5"104us>10485L6" id="L6" class="line" nnnnnnnnn*Lthe scan ofLtma6withou_ findiongany &nod that6eoved, much6less the Linux kernel.
 104 h* Su cla" id="L5" cla104 h>1042ine"  Copyright 2005 Chrisnnnnnnnnnr eoved togan e="ty &nod,othen therd is nothiongleft worthnmigra>ionOsthe Linux kernel.
 104ring h* Su cla" id="L5"104ri>1042c#L4" id="L4" class="line"nnnnnnnnnrmamee="L6"> 5  6 104port h* Su cla" id="L5"104po>10448=includecasm-alpha/tlbflush.h1049="L1"> 104sprox" h* Su cla" id="L104sp>10449id="ame7="L6action="ajcodetmamss/a> 104ai5derrupt h* Su cla" i104ai>104a9id="ame7="Lwhildo ( action="ajcode=="mm_e="tyess/a> 5  6 104 h* Su cla" id="L5" cla104 h>1045#L6" ame7="L6"> 37 6 104 patih* Su cla" id="L5"104 p>10462 Cop"> 37 6 ame7="L 104 h* Su cla" id="L5" cla104 h>1040* Cop"> 37 6<"> 37 6 104seq_done h* Su cla" id=104se>1041 id=p id="L4" class="line" nam1085="L1"> 104roc_fs h* Su cla" id="L104ro>10495L6" ame7="L6"> 37 6*action="ajcodefor_each_&nod_eL5"ess/a> 5  6 104igrate h* Su cla" id="L104ig>1042ine"geass=)p id="L4" 7m5ass=(51047="L1"> 104* Su cla" id="L5" class104* >1042c#L5""> 37 6<<<<<<< 37 6
 104 h* Su cla" id="L5" cla104 h>1042" id="L4" class="line" nam4nnnnnnnnnnnnnnnnnnnnnnnn* do_migra>e_pangg() trids  to&aivesthe Linux kernel.
 104securit" h* Su cla" id=104se>1049y.c#L5" id="L5" class="line "> 37 6 37nnnnnnnn* &nod rela>ionship ofLtheLpangs established betweensthe Linux kernel.
 104syscalls h* Su cla" id=104sy>104sy.c#L5" id="L5" class="line "> 37 6 37nnnnnnnn* ttreads and spaory areasOsthe Linux kernel.
 104upih* Su cla" id="L5" c104up>1044 4  2 37 6 37nnnnnnnn*sthe Linux kernel.
 104asm_inan c h* Su cla" i104as>1044*
 37 6nnnnnnnn* Howeversif thsfnumber ofLsourcdi&nods is notdequa
 104
	 asmu_notifier h* Su 104
	>1044#L6" id="L6" class="line" 4 ame7="L6"> 37 6nnnnnnnn* ttsfnumber ofLdestina>ioni&nods wedcan notdp5eservesthe Linux kernel.
 104* Su#include < id="L104* >1048 id= id="L6" class="line" nnnnnnnnn6"> 37 6nnnnnnnn* ttis node rela>ive rela>ionship.  Idithat6case, skipsthe Linux kernel.
 104sm-arm/tlbflush.h|inclu104sm>10485L6" id="L6" class="line" nnnnnnnnn6"> 37 6nnnnnnnn* copyiongspaory from a &nod that6is in the destina>ionsthe Linux kernel.
 104m-arm/uaccess.h|include104m->1042ine"  Copyright 2005 Chrisnnnnnnnnn6"> 37 6nnnnnnnn* eL5"Osthe Linux kernel.
 104 >
  v2.6.20.4104 >>1042c#L4" id="L4" class="line"nnnnnnnnn6"> 37 6nnnnnnnn*sthe Linux kernel.
 1049h* Su cla" id="L5" cla1049h>1042" id="L4" class="line" nam4nnnnnnnnnnnnnnnnnnnnnnnn* Example: [2,3,4] L-8io [3,4,5] eoves everythionOsthe Linux kernel.
 104aam10="L1">  0 11049y.c#L5" id="L5" class="line "> 37 6 37nnnnnnnn*          [0-7] L -8io [3,4,5] eoves only60,1,2,6,7Osthe Linux kernel.
 115=="10="L1">  0 1110sy.c#L5" id="L5" class="line "> 37 6 37nnnnnnnn*mamee="L6"> 5  6 115upih* Su cla" id="L5" c115up>1109#L6"p id="L4" class="line" nam1152="L1"> 115asm_inan c h* Su cla" i115as>11062 Cop"> 37 6 ame7="L<<<<<<<< 115
	 asmu_notifier h* Su 115
	>1100* Cop"> 37 6<"> 37 6 ame7="LLLLLLLLLLLLLLLLLLLLLLLLL  action="ajcode=="m_is&et/ss/a> 115* Su#include < id="L115* >1150 id="ame7="LLLLLLLLLLLLLLLLLLLLLLLLLcontinuep  id="L4" class="line" nam1105="L1"> 115sm-arm/tlbflush.h|inclu115sm>11505L6"  id="L4" class="line" nam1156="L1"> 115m-arm/uaccess.h|include115m->1102ine" "> 37 6 37,,,,,,,, action="ajcoded5ss/a> 115 >
  v2.6.20.4115 >>1102c#L5""> 37 6<<<<<<< 37 6 1159h* Su cla" id="L5" cla1159h>110s i5stdivcy.c#L6" 0geLLLLLLLLLLLLLLLLcontinuep  id="L4" class="line" nam1109="L1"> 115aam10="L1">  0 11106.cy.{"> 5  6 115  1 37 666666666 action="ajcodesourcdess/a> 5  6 115sss:cy.c#L4" id="L4" cl115ss>1110#L6" ame7="L6"> 37 666666666 action="ajcodedestess/a> 115  3 115ssl.
1150* Cop"> 37 6<"> 37 666666666 id="L6" class="line" tr desti&nt in rdeLiniongfrom &nodm?n*mamee="L6"> 5  6 115  5 115 ove11195L6" ame7="L6"> 37 66666666666666666barekLp id="L4" class="line" nam1156="L1"> 115>aillicy.c#L5" id="L5" 115>a>1152ine" "> 37 6 37"} id="L4" class="line" nam1157="L1"> 115	isli5derleavesxbased t115	i>1152c#L5""> 37 6<<<<<<<< 1156"
	or	offset i5d >
	  1156">115s i5stdivcy.c#L6" 0ge66666666barekLp id="L4" class="line" nam1159="L1"> 115rocessl.1116.cy.{"> 5  6 115ass="line" nam2e="L1"> 115as>1128.c#L6ame7="L6"> 37 6 action="ajcode=="m_clea5rss/a> 115  2 37 66action="ajcodeer5rss/a>e_to_ncodess/a>e_to_ncodeass= action="ajcode=mmss/a> 115  3 37 6 ame7="L 115" class="line" nam2e="L115" >1120* Cop"> 37 6<"> 37 666666666 action="ajcodebusyess/a> 115sut t>
  with 
	  first115su>1120 id="ame7="LLLLLLLLL 115tder if bind would2trul115td>11295L6" ame7="L6"> 37 666666666barekLp id="L4" class="line" nam1126="L1"> 115des i5stdivcy.c#L6" id=115de>1122ine" "> 37 6"} id="L4" class="line" nam1127="L1"> 1158 6 115de=nex/ss/a>1128* 37 6 11" namagspps= &n= ~act11" n>11295L6" ame7="L 114ormallynidmemical d >de114or>113.2 Cop"> 37 6 ame7="L<"> 114when younhave a non>dee114wh>1130#L6" ame7="L<"> 114"L3" class="line" namee114"L>1132#L6"p id="L4" class="line" nam1143="L1"> 114ssl.
11330.c#"} id="L4" class="line" nam1144="L1"> 114first,	or	when o5la Vnu114fi>1131 id=p id="L4" class="line" nam1135="L1"> 114slis whatef="mm/always>114sl>11385L6" id="L6" class="line" tr the Linux kernel.
 114still>doesxby, ahem,lde114st>1132ine"  Copyright 2005 Chrisn* A6e a newLpang for pang migra>ion based on vmaf<>

 1148 6inted togby @priva>eOsthe Linux kernel.
 114li5derrupt> kernelalloc114li>1132" id="L4" class="line" nam49 Sea5ch forwardgfrom therd,L
 114gn
1139y.c#L5" id="L5" class="line* list ofLpangs handed togmigra>e_pangg()--which is how wedgetiherd--sthe Linux kernel.
 114.1144  1 114d="L3" class="line" nam114d=>1144 4  2 5  6 114  3 114swapp>
 	whe1140* Co {"> 5  6 114nhandledi When processl114nh>1140 id="ame7="L(struct action="ajcodevm_aream_structss/a>eess/a>etassp  id="L4" class="line" nam1145="L1"> 114s/swap i5sicy.c#L3" id=114s/>11495L6" ame7="L unsigned long action="ajcodeuninitialized_va5rss/a> 1147 6 114y getsep1142c#L5""> 37 6whildo *action="ajcode=vmass/a> 5  6 114114s i5stdivcy.c#L6" 0ge action="ajcodeadd5essrss/a> 114catv2.pdon't getep<114ca>1146.cy.came7="L6"> 37 6 114"L5" class="line" namee114"L>1158.c#L6ame7="L6"> 37 666666666barekLp id="L4" class="line" nam1151="L1"> 114  2 37 66action="ajcode=vmass/a> 114rep11562 Cop"> 37 6"} id="L4" class="line" nam1153="L1"> 114has  kernelmappedicy.c#114ha>1154#L6"p id="L4" class="line" nam1154="L1"> 114   5
 114* Sugject   
 11457="L6"> 57 61142ine"  Copyright 2005 Chrisnnnnnnnnnrmamee="L6"> 5  6 114ablel.
1152c#L5""> 37 6<"> 114"L6"> 59 61142" id"} id="L4" class="line" nam1159="L1"> 114ass="line" nam60="L1"> 114as>1149y.c##else} id="L4" class="line" nam116=="L1"> 114luseseprocessl.114ly.c#} id="L4" class="line" nam1161="L1"> 114ine" namee="L2"> 6  21144 4  /eturn  5  6 114nign

11662 Cop"> 37 6 ame7="L<<<<<<<<7="L6">  unsigned long action="ajcode=vlags3 114amee="L4"> 6  41160* Co {"> 5  6 114aoom much fasder and nh114ao>1148 id="} id="L4" class="line" nam1165="L1"> 114.c#L3" id="L3" class="l114.c>11605L6"  id="L4" class="line" nam1166="L1"> 1146y and en1* Su#include 1146y>1142ine" 5  6 114* Su#include < id="L114* >1162c#L5""> 37 6<<<<<<< 3consct action="ajcode=="meL5" _tss/a> 114ass="line" h* Su cla" i114as>1166y.c# {"> 5  6 114Su cla" id="L5" class="114Su>1166.cy.came7="L<"> 114ighss= h* Su cla" id="L114ig>11720.c#"} id="L4" class="line" nam1171="L1"> 114ugetlb h* Su cla" id="L114ug>1179#L6"p id="L4" class="line" nam1172="L1"> 114mpolih* Su cla" id="L5"114mp>11762 Co/eturn (struct action="ajcodepangess/a> 114edih* Su cla" id="L5" c114ed>1170* Co {"> 5  6 114nodemaskih* Su cla" id=114no>1174.cy.came7="L<"> 114usetih* Su cla" id="L5"114us>11795L6""} id="L4" class="line" nam1176="L1"> 114 h* Su cla" id="L5" cla114 h>1142ine"#endif} id="L4" class="line" nam1177="L1"> 114ring h* Su cla" id="L5"114ri>117.c#L5p id="L4" class="line" nam1148="L1"> 114port h* Su cla" id="L5"114po>11448=in/eturn  long action="ajcodedo_mbin 5ss/a> 5  6 114sprox" h* Su cla" id="L114sp>1176.cy.came7="L6"> 37 666666 unsignedshorct action="ajcode=codess/a> 5  6 114ai5derrupt h* Su cla" i114ai>1188.c#L6ame7="L6"> 37 666666 action="ajcode=="meL5" _tss/a> 114 h* Su cla" id="L5" cla114 h>1145#L6" {"> 5  6 114 patih* Su cla" id="L5"114 p>11462 Cop"> 37 6(struct action="ajcodevm_aream_structss/a> 114 h* Su cla" id="L5" cla114 h>1140* Cop"> 37 6(struct action="ajcode=pm_structss/a> 114seq_done h* Su cla" id=114se>1180 id="ame7="L(struct action="ajcodess="line"mss/a> 114roc_fs h* Su cla" id="L114ro>11895L6" ame7="L unsigned long action="ajcodeen 5ss/a> 114igrate h* Su cla" id="L114ig>1182ine" "> 37 6 114* Su cla" id="L5" class114* >1142c#L5""> 37 6 action="ajcodeLIST_HEADE3 114 h* Su cla" id="L5" cla114 h>11848=includecasm-alpha/tlbflush.h1189="L1"> 114securit" h* Su cla" id=114se>11895L6" ame7="L 114syscalls h* Su cla" id=114sy>119.2 Cop"> 37 6 ame7="L<"> 114upih* Su cla" id="L5" c114up>11915L6" ame7="L 114asm_inan c h* Su cla" i114as>11962 Cop"> 37 6 ame7="L<"> 114
	 asmu_notifier h* Su 114
	>1194#L6"p id="L4" class="line" nam1144="L1"> 114* Su#include < id="L114* >11945L6" ame7="L 114sm-arm/tlbflush.h|inclu114sm>11995L6" ame7="L6"> 37 6<"> 114m-arm/uaccess.h|include114m->1192ine"geass=)p id="L4" 7m5ass=(51147="L1"> 114 >
  v2.6.20.4114 >>11975L6" ame7="L 1149h* Su cla" id="L5" cla1149h>119s i5stdivcy.c#L6" 0ge action="ajcode=vlags3 114aam10="L1">  0 11196.cy.{"> 5  6 125=="10="L1">  0 11200c#L5""> 37 6 action="ajcodelen5ss/a> 125upih* Su cla" id="L5" c125up>1201#L6" ame7="L6action="ajcodeen 5ss/a> 125asm_inan c h* Su cla" i125as>1202#L6"p id="L4" class="line" nam1203="L1"> 125
	 asmu_notifier h* Su 125
	>1200* Cop"> 37 6 125* Su#include < id="L125* >1250 id="ame7="LLLLLLLLL<"> 125sm-arm/tlbflush.h|inclu125sm>12095L6" ame7="L 125m-arm/uaccess.h|include125m->1202ine" "> 37 6 37<"> 125 >
  v2.6.20.4125 >>120.c#L5p id="L4" class="line" nam1258="L1"> 1259h* Su cla" id="L5" cla1259h>1208* 37 6 125aam10="L1">  0 112095L6" ame7="L 125  1 37 6<"> 125sss:cy.c#L4" id="L4" cl125ss>1219#L6"p id="L4" class="line" nam1252="L1"> 125  3 125ssl.
1250* Cop"> 37 6<"> 37 6 action="ajcodenewess/a> 125  5 125 ove12195L6" ame7="L6id="L6" class="line" tr the Linux kernel.
 125>aillicy.c#L5" id="L5" 125>a>1212ine"  Copyright 2005 Chrisnnnnnnnnnr If wedare usiongttefdefaultf<>
ionsthe Linux kernel.
 125	isli5derleavesxbased t125	i>1212c#L4" id="L4" class="line"nnnnnnnnnr on discontinuousLadd5ess  idcds is okay after C6
 1256"
	or	offset i5d >
	  1256">1212" id="L4" class="line" nam4nnnnnnnnrmamee="L6"> 5  6 125rocessl.12195L6" ame7="L 5  6 125ass="line" nam2e="L1"> 125as>1228.c#L6ame7="L6"> 37 6 action="ajcode=vlags3 125  2 125  3 37 6 action="ajcodepr_debugess/a>"mbin  %lx-%lx =cod:%d &vlag:%d &nodm:%lx\n"amee="L,6"> 5  6 125" class="line" nam2e="L125" >1220* Cop"> 37 6<"> 37 66 action="ajcode_sarctss/a> 5  6 125sut t>
  with 
	  first125su>1220 id="ame7="LLLLLLLLL6 125tder if bind would2trul125td>12205L6"  id="L4" class="line" nam1226="L1"> 125des i5stdivcy.c#L6" id=125de>1222ine" "> 37 6 5  6 1258 6 125de=nex/ss/a>122s i5stdivcy.c#L6" 0ge action="ajcodeer5rss/a>e_preamss/a>e_preaeass==p  id="L4" class="line" nam1259="L1"> 12" namagspps= &n= ~act12" n>1226.cy.came7="L6"> 37 6 124ormallynidmemical d >de124or>123.2 Cop"> 37 6 ame7="LLLLLLLLLgotog action="ajcodem"li_ou_tss/a> 124when younhave a non>dee124wh>1230#L6" ame7="L"} id="L4" class="line" nam1242="L1"> 124"L3" class="line" namee124"L>12462 Cop"> 37 6 {"> 5  6 124ssl.
1230* Cop"> 37 6<"> 37 6 action="ajcodeNODVMASK_SCRATCHE3chtss/a>chmass)p  id="L4" class="line" nam1244="L1"> 124first,	or	when o5la Vnu124fi>1230 id="ame7="LLLLLLLLL 5  6 124slis whatef="mm/always>124sl>12395L6" ame7="L6"> 37 6<"> 37 6 action="ajcodedown_wri>eess/a>eeass= & action="ajcode=mmss/a> 124still>doesxby, ahem,lde124st>1232ine" "> 37 6 37,,,,,,,, action="ajcodetask_loc"ess/a> 1248 6 37 6<<<<<<< 37 6chtss/a>chmass)p  id="L4" class="line" nam1248="L1"> 124li5derrupt> kernelalloc124li>123s i5stdivcy.c#L6" 0ge66666666 action="ajcodetask_unloc"ess/a> 124gn
1236.cy.came7="L6"> 37 666666LLL 124.124.2 Cop"> 37 6 ame7="LLLLLLLLL66666666 action="ajcodeup_wri>eess/a>eeass= & action="ajcode=mmss/a> 124d="L3" class="line" nam124d=>1240#L6" ame7="L6"> 37 6} else} id="L4" class="line" nam1242="L1"> 124  3 37 6 ame7="L<<<<<<<< 124swapp>
 	whe1240* Cop"> 37 6<"> 37 6 action="ajcodeNODVMASK_SCRATCH_FREVE3chtss/a>chmass)p  id="L4" class="line" nam1244="L1"> 124nhandledi When processl124nh>1240 id="ame7="L"} id="L4" class="line" nam1245="L1"> 124s/swap i5sicy.c#L3" id=124s/>12495L6" ame7="L 1247 6 37 6 37gotog action="ajcodem"li_ou_tss/a> 124y getsep124.c#L5p id="L4" class="line" nam1248="L1"> 1241248* 37 6 124catv2.pdon't getep<124ca>1246.cy.came7="L6"> 37 6 6<"> 37 6 action="ajcode=vlags3 124"L5" class="line" namee124"L>125ly.c#} id="L4" class="line" nam1251="L1"> 124  2 5  6 124rep12525L6" ame7="L 124has  kernelmappedicy.c#124ha>1250* Cop"> 37 6<"> 37 6 action="ajcodeer5rss/a> 124   5 124* Sugject   124 >>1292c#L5""> 37 6 action="ajcoden longs3 1249h* Su cla" id="L5" cla1249h>129s i5stdivcy.c 124aam10="L1">  0 11296.cy.came7="L6"> 37 6 action="ajcodeendeL5"ess/a> 135=="10="L1">  0 11300c#L5""> 37 6else} id="L4" class="line" nam1351="L1"> 135upih* Su cla" id="L5" c135up>1300#L6" ame7="L6"> 37 66action="ajcodeendeL5"ess/a> 135asm_inan c h* Su cla" i135as>1302#L6"p id="L4" class="line" nam1303="L1"> 135
	 asmu_notifier h* Su 135
	>1300* Cop"> 37 6pan>
 5  6 135* Su#include < id="L135* >1350 id=="L4" class="line" nam4nnnnnnnn.c 5  6 135sm-arm/tlbflush.h|inclu135sm>13095L6" ame7="L 5  6 135m-arm/uaccess.h|include135m->1302ine" "> 37 6 37 135 >
  v2.6.20.4135 >>1302c#L5""> 37 6<<<<<<< 37 6<"> 1359h* Su cla" id="L5" cla1359h>130s i5stdivcy.c#L6" 0gefor  (action="ajcode"ess/a> 5  6 135aam10="L1">  0 11306.cy.came7="L6"> 37 6 6<"> 37 unsigned long action="ajcode_tss/a> 135  1 37 6 37 135sss:cy.c#L4" id="L4" cl135ss>1310#L6" ame7="L6"> 37 66666666666666666<"> 135  3 37 6 ame7="L<<<<<<<< 5  6 135ssl.
1350* Cop"> 37 6<"> 37 6 ame7="L<<<<<<<< 135  5 135 ove13195L6" ame7="L6"> 37 6<"> 37 6} else< 135>aillicy.c#L5" id="L5" 135>a>1312ine" "> 37 6 37,,,,,,,,66666666<"> 135	isli5derleavesxbased t135	i>1312c#L5""> 37 6<<<<<<<<"} id="L4" class="line" nam1358="L1"> 1356"
	or	offset i5d >
	  1356">131s i5stdivcy.c#L6" 0ge action="ajcoden longs3 135rocessl.1316.cy.came7="L6"> 37 6 action="ajcodeendeL5"ess/a> 135ass="line" nam2e="L1"> 135as>1328.c#L6ame7="L"} id="L4" class="line" nam1351="L1"> 135  2 135  3 135" class="line" nam2e="L135" >1320* Cop"> 37 6<"> 37 6<"> 135sut t>
  with 
	  first135su>1324.cy.came7="L action="ajcodeno"mm_add5tss/a>
  with &nodgeass)[t t>
  with &nodgeass 124lusion 6} else<1320* Cop">7line"L4" c"L6"> 5  6  0 1120nam1185="L1"> 114re"ajcodenewess/a>13095L6" ame7=".codemaxncodess/a> 124aam10="Ls="com2to24 h>1240* " ame7="L
  todd5eass= *action="ajcode= t>
  todd5ea &noda> 124seq_done h* Su ction="ajcodeneL5"essine" nam1181="L1"> 114 h* Su cla" id="S_PER_LONG/.c#L)L- 1p  id="L4" clLLLLLLLLLLLLL unsigned long 3"ajcodem"l3_ou_tss/a> 37 6<"> 134"L3" class="line" namee134"L>133 37 6(struct action="ajcodevm_are343="L1"> 134ssl.
1330* Cop"> 37 6181="L1"> 114 h* Su cla" id="codess= *action="ajcode_NUMNODVSrss/a> 1249h* Su cla" id="L5" cla1249h>129s i5stdivcy.-1, 64) / 8 124ablelbytusertass= *action=bytus_NUMNODVSrss/a> 135rocessl.1316.cy.came7="L * c#L5""> 37 6chmass)6 {"3 5  6337="L 37 6 ame7="L<<<<<<<< 135 >
  v2.6.20.4135 >>130<"> 37 6<"> 135	isli5derleavesxbased t135	i>1312c#L5""> 37 6<<<<<<<<"} id="L4" class="lindetask_unl3c"ess/a> 124s

 37 6<"> 124."L1"> 135sut t>
  with 
	  first135su>1324.cy.came7="L action="ajcodeno"mm_add5tss/on="ajcode3p_wri>eess/a>ee3ss= & action="ajcodh* Su cla" id="codess= *action="ajcode_NUMNODVSrss/a> 131242="L1"> 124  3 37 6 {"> 5  6
  with 
	  first135su>1324.cy.came7="L :a> 5  61347="L 114ss,6 114ss,61176.cy.came7="L6"> 37 666666 unsignedshorct3"li_ou_tss3a> 114ss,6 5  6 124s4catv2.pdon't getep<124ca>1246.cy.came7="L6"> 37 6 6<"> 37 6 action="a312412483 114ss,61145#L6" {"> 5  63span class="com124  >12513L6" a35s= & actio Su cla" id="L5" class114* >1142c#L5""> 37 6 action="ajcodeLIST_HEADE33spasude PTR_ERn class="c118=="L1"> 114ai5derrupt h* Su cla" i114ai>1188.c#L6ame7="L action="ajcodeLIST_HEADE3
 114ai5derrupt h* Su cla" i114ai>1188.c#L6ame7="Lnglistess/a> 5  6 124ass.ca_FLADVStass=o} id="L4124ass.ca_FLADV7="L action="ajcodeLIST_HEADE312593L6" a35a> 5  6 114aam1.ca_FLADVStass=o} id="L4124ass.ca_FLADV7="L action="ajcodeLIST_HEADE3 5  6 12457wmass)p  id="L4"d_=vlagstss,6"> 5  6 135	isli5derleavesxbased t135	i>1312c#L5""> 37 6<<<<<<<<"} id="L4" class="lin124"L6"> 53 6125s3i5std35AULTrss/a>1188.c#L6ame7="Ln"line" nam1248="L1"> 124ass i5ATIC_24ass i5ATIC_1188.c#L6ame7="Ln"line" nam1248="L1"> 124ass RELATIVE_24ass RELATIVE_ 37 6<"> 135	isli5derleavesxbased t135	i>1312c#L5""> 37 6<<<<<<<<"} id="L4" class="lindenr_faile35ss/a>129s i5stdivcy.c36POLMF_MOVE_ALLs3<6 action="ajcodaction="ajcode=mmss/a> 37 6<">3spasu3e &IGRATE_SYNCtass,61242ine""} id="L4" class="line" nam1277="L1"3ajcodenr_f3ile 5ss/a> 5  6 125sut t>
  with 
	  first125su>1220 id="ame7="LL5=="L1"> 124"L5" clas __usertass= *action="ajcode=eLng/.c#*sizeof( L5" cla114 h>1145#L6" {"> 5  64" class="line" nam1277="L1"3a> 5  6 1246y and en1* Su#i3clude3637 612623#L5""36nsthe Linux kernel.
/* Setsm-arprocet ijcooryased t12 ame7="L 5  6 124s4catv2.pdon't getep<124ca>1246.cy.came7="L6"> 37 6 6<"> 37 6 action="a3deer5rss/a3 114ss,6 37 6<"> 124ighss= h* Su cla" i3="L123ig>127<">1142c#L5""> 37 6 action="ajcodeLIST_HEADE312763 Cop"37=nodgs3eeass= & action="3jcode370* Cop"> 37 6181="L1">c118=="L1"> 114ai5derL5" cla114 h>1145#L6" {"> 5   5  6 124ass.ca_FLADVStass=o} id="L4124ass.ca_FLADV7="L action="ajcodeLIST_HEADE3 1wmass)p  id="L4"d_=vlagstss,6"> 5  6 114aam1.ca_FLADVStass=o} id="L4124ass.ca_FLADV7="L action="ajcodeLIST_HEADE31273c#L5p37POLMF_MOVEs3
 5  612723 id="37em"li_set_&nodeL5"tss"L1"> 135	isli5derleavesxbased t135	i>1312c#L5""> 37 6<<<<<<<<"} id="L4" class="linrnel.
 124sp3ox" h37deBITS_PER_LONGE3 124ass i5ATIC_24ass i5ATIC_ 124ass RELATIVE_24ass RELATIVE_ 37 6<"> 135	isli5derleavesxbased t135	i>1312c#L5""> 37 6<<<<<<<<"} id="L4" class="lin  6 124 3* Su 38ude lenstssL+6 action="ajcodaction="ajcode=mmss/a>129s i5stdivcy.c12843 37 6<"> 53 61242ine""} id="L4" class="line" nam1277="L1"3 125sut t>F_STRICT/.c#)L  id="L4" classL5=="L1"> 124"L5" clas __usertass= *action="ajcode=c 5  6
  with SYSCALs i5sINE4ertass= *actionSYSCALs i5sINE4 &nodeq_done h* Su cte panglisttass,6 125sut t>pidunsigned long actpidunange4="L1"> 125sut t>pidsigned long actpidss)p  181="L1"> 114ss,6 124sss,6 124sss,6 37 6<">129.3 Cop"38g>127<"> 124spasude &nodeL5"L4" class="line" nam1274sude &pmass=,6actNUa> 124spasude &nodeL5"tsigned lon)))  id=tu11_3="L 124* Su#inc3ude &3t; id="L124* >pasude &nodgeass)p sct unsigned long action="ajcode__us"eass=,(action=e" na __usertass= *actione" na __us_3="L1142c#L5""> 37 6 action="ajcodeLIST_HEADE3 1wmass)p  id="L4[t tsct unsigned long action="ajcode__users3 1wmass)p  id="L4[t tsct unsigned long action="ajcode__users312795L6" ame7=" action="ajcodeLIST_HEADE3chmass)p  id="L4" class="line" nam1244="L1"> 124first,	or	when o5la Vnu124fi>1230 id="ame7="LLLLLLLLL 125ass="line" nam2e="L1hen o5la Vnu124fi>1230 id="ame7="LLLLLLLL 135	isli5derleaves hrep1240* Cop"> 37 6<"> 37 6 action="ajcodeNODVM4"ess/a> 124"L5" clashen o5la Vnu124fi>1230 id="ame7="3="L1"> 124edih* Su cajc1" class="line" najc137 6<"> 37 6 action="ajcodeNODVM4"35
	 asmu4nam1244="L1"> 124* Su#inc4uppor40; id="L124* >pasude &nodgeassL5"124us>12795L6" ame7="4su=="L1"> 124"L5" clashen o5la Vnu124fi>1230 id="ame7="3="L1"> 124edih* Su cajc2" class="line" najc237 6<"> 37 6 action="ajcodeNODVM4"45
	 asmu4n=axncod/.c#L-8io  action4amee=407="L 1wmass)p  id="L4action="ajcode=mmss/a>129s i5stdivcy.c 37 6<"> 124y getsep1274 id="L4" class="line" nam1248="L1">4ess/a>chtss/a>chmass)p  id="260 __usertass= *action=260 __us>129s i5stdivcy.c 37 6<"> 124y getsep1274 id="L4" class="line" nam1248="L1">4ajcode"ess4a>

/* Findsm-ar m_struc<2 ame7="L4a> 1wmass)p  id="L4tsigned lon)))  id=tu11_3="asude &pmass=,6actpidsigned long actpidss)p ?="L1"> 125sut t>Fde _e" naby_vpidsigned long actFde _e" naby_vpid>4aongs34"ajcodeEINVALrss/a><"line" nam2e="L1tsigned lon)))  id=tu11_3=" 6<"> 37 6 ame7="L<<<<<<<< 1356"
	or	offset i54 >
	 41356">131s i5stdivcy.cwmass)p  id="L4rcu_readip  id="L4" class="linrcu_readip  id= &nod)" class="line" nam1248="L1">4ass/a> 124Su cla" id="L5" classSR)p  id="L4" classsSR)p="L4" class="line" nam1248="L1">4a action="4sude endeL5"/.c#L =~0ULp 4id="L4" class="line" nam132=="L1"> 124y getsep1274 id="L4" class="line" nam1248="L1">451="L1"> 145  24135  34span class="com135  >13224L6" a42=nodgs345jcode"ess4spasude copy_from_usereas4= act4237 6pan>
 124Su cla" id="L5" class=based t135	i>1312c#L5""> 37 6<<<<<<<<"} id="L4" class="li4a>1320* C4p">7l4ne"L4" c"L6"> a" id="L124sp>1279y.c#L5" id="L5" class="line* User  idcd7425aam10="L4">  0 1120na41185=42nsthe Linux kernel.
" nam132=* Cd=="135sm-isrprocet ihassm-arright2to2modifysm-ar1"> 135* " id="L5" class="line* User  idcd742" nam13584d="4* Bs= action="ajcoden4wess/4>
" nam132=* procet . T-arright2ex 113095L6" ame7=".codem4xncod4ss/a>1privileges orsm-ar1".c" id="L5" class="line* User  idcd742 action="4sude er5/.c#L  id="L4" cl4ss="l42dlistsOsthe Linux kernel.id assm-artarnod procet ." id="L5" class="line* User  idcd74"ajcodem"l4_ou_tss/a>1289#L6" nam132=*ame7="L 144"L3" class="line" namee144"L>143=nodgs3443="L1"> 144ssl.
1430* Cop"> 37 6/a><"line" nam2e="L1uid_eqned lon)))  id=uid_eq> 124edih* Su euidsigned long acteuid> 124edih* Su suidsigned long actsuidss)p) STRICTrss/a"line" nam2e="L1uid_eqned lon)))  id=uid_eq> 124edih* Su euidsigned long acteuid> 124edih* Su uidsigned long actuidss)p) STRICTrss/ class="line" nam1248="L1">44eEFAULTrs43 123="L1"> 124edih* Su uidsigned long actuidss)p, 124edih* Su suidsigned long actsuidss)p) STRICTrss/a"line" nam2e="L1uid_eqned lon)))  id=uid_eq> 124edih* Su uidsigned long actuidss)p, 124edih* Su uidsigned long actuidss)p) STRICTrss/ class="line" nam1248="L1">44>chmass)6 {"4 5  643de EINVAL/.c#p  i"line" nam2e="L1capabl5" cla1249h>129scapabl5> 37 6 ame7="L<<<<<<<<4eass=43TS_TO_LONGSrss34detask_loc4ess/a> 124Su cla" id="L5" classPERp1240* CPERp37 6<<<<<<<<"} id="L4" class="li44ewmassp  4 124y getsep44rss/a>4on="ajcode4p_wri>eess/a>ee4ss= &a class="line" nam1248="L1">4o2="L1"> 141242="L1"> 124  34deer5rss/a4<"line" nam2e="L1/a>12795L6" ame7="L="line" nam1353=t" na __usertass= *actione" na __us_3=") STRICTrss/a"line" nam2e="L1capabl5" cla1249h>129scapabl5> 37 6 ame7="L<<<<<<<<144de EINVAL/.c#p  id="Lpasude &nodgeas"line" nam1269="L1"> 124Su cla" id="L5" classPERp1240* CPERp37 6<<<<<<<<"} id="L4" class="li4spasude er4/.c#L  id="L4" class="lin4" nam44TS_TO_LONGSrss3 124y getsep41241248412795L6" ame7="L="line" nam1353=ion=_" _tusertass= *action="aj_" _tuse7="6} else< 37 6 ame7="L<<<<<<<< 135ass="lline" nam1269="L1"> 124Su cla" id="L5" class=based t135	i>1312c#L5""> 37 6<<<<<<<<"} id="L4" class="li4124  24span class="com124  >12514L6" a45s= & action="ajcod="L1"> 124y getsep4562 Cop"> 37 6 {"> 5  6
 114ai5deraction="ajcode=mmss/a>4u>12594L6" a45a> 37 6<"> 5  6 124y getsep<4124"L6"> 54 6125s4i5std45ONGSrss/a>4ude &vma.c4s/a>4urss/a><"line" nam2e="L1L4" class="line" nam127 6<"> 37 6 ame7="L<<<<<<<< 124Su cla" id="L5" class=based t135	i>1312c#L5""> 37 6<<<<<<<<"} id="L4" class="li4666 action4"ajcodeMIGRATE_SYNCrss/a>4spasu4e &IGRATE_SYNCtass,6 124y getsep1274 id="L4" class="line" nam1248="L1">4ajcodenr_f4ile 5ss/a> 5  6 1246y and en1* Su#i4clude46m1276="L1"> 1wmass)p  id="L4action="ajcode=mmss/a>1274 ld37 6ss,612795L6" ame7="Lif ( action="ajcodeer5rss/a4efaile 5ss4lude < id="L124* >12624#L5""46ion="ajcodecurrChrisspasude &nodgeascapabl5" cla1249h>129scapabl5> 125sut t>124assF_MOVE_Aa>4_faile 5ss4a>4_rss/a> 124ighss= h* Su cla" i4="L124ig>127> 124y getsep1274 id="L4: class="line" nam1248="L1">4k_lru_pang4s31230 id="ame7="LLLLLLLLL12764 Cop"477="L 37 624 h* Su cla" id="L5" cla124 h>1242ine""} id="L4" class="line" nam1277="L1"4 124y getsep4k" nam12664er5/.c#p  id="L4" class="4ine" 4am1276="L1"> 1wmass)p  id="L4pudge" nastruc4 124ring h4 Su cla" id="L5"124ri>1274c#L5p47POLMF_MOVEs3<="L1"> 124y getsep1274 id="L4" class="line" nam1248="L1">4124port h*4Su cla" id="L5"124po>12724 id="47
 124sp4ox" h47deBIT {"> 5  6 124 4* Su 48s= &a class="line" nam1248="L1">4 24mpolih*4Su cla" id="L5"124 p>12844
/* Retrieve NUMAased t12 ame7="L 54 6 124y getsep1274SYSCALs i5sINE5> 124sss,6 124s4catv2.pdon't getep<124ca>1246.cy.came7="L6 181="L1"> 114ss,6 114ss,6 114ss,61145#L6" {"> 5  6 37 6 ame7="L<<<<<<<<1142c#L5""> 37 6 action="ajcodeLIST_HEADE31142c#L5"uninitialized_vas>4nnel.129.4 Cop"4837 6-- action="ajcodemaxncodess/4> 135sss:cy!sude &pmass=,6actNUa> 5  6ocessl.1316.cy.came7="L- action="ajcodemaxncodess/4>24mpolih*4 =="ms_clea5eass= *action4"ajco49  action="ajcodemaxnc"L1"> 135	isli5derleavesxbased t135	i>1312c#L5""> 37 6<<<<<<<<"} id="L4" class="li4/L5"gfrom 4 =axncod/.c#L  =0 || ( ac4ion="4937 6pan>
 124* Su#inc4ude &4t; id="L124* >pasude &nodgeasaction="ajcode=mmss/a> 124"L5" claspvaless/a> 124"L5" clas __usertass= *action="ajcode=eLng/.c#*sizeof( ion="ajcodeneL5"essasude ne6 ,61145#L6" {"> 5  6<<<<<<<<"} id="L4" class="li4/spasude m4 =axncod/.c#L-8io  action4"ajco497="L 1/a> 37 6<"> 1cla" id="L5" class114* >1142c#L5""> 37 6 action="ajcodeLIST_HEADE3 37 6<"> 135	isli5derleaves	  first135su>1324.cy.came7="L action="ajcodeno"mm_add5tss5m1351="L1"5 135upih* Su cla" id="L5"5c135u50s= &a class="line" nam1248="L1">5"ess/a> 135sss:c<"> 37 6<">
  todd5ea &nodatv2.pdon't getep<124ca>1246.cy.came7="L6 ,6 124"L5" clas __usertass= *action="ajcode=c 124* Su#inc5uppor507="L 1cla" id="L5" class114* >1142c#L5""> 37 6 action="ajcodeLIST_HEADE3 5  6<5on="ajcode5INVALrss/a>1324.cCONFIG_COMPAi7 6 action="ajcoden longs3<5o8="ajcode5I =axncod/.c#L-#37;= acti5eBITS50deBITLLLLLLL127> 124y getsep 124s,6 124s,61246.cy.came7="L6"> 37 6 6<"> 37 6 action="a5di- action5"ajcodeEFAULTrss/a>1145#L6" {"> 5  6 37 6 ame7="L<<<<<<<< 37 6 action="ajcodeLIST_HEADE3 1n class="e neL5"eass=p id="L4" class="line" nam1284="L1"> 124s,61246.cy.c> 1356"
	or	offset i55 >
	 51ONGSrss/a>1246.cybam127ss,61316.cy.came7="L 114ss,6 155  213225L6" a527="L 37 6/a><6 action="ajcod"line" nam1351="L1"> 135sss:c<"> 37 6<">1246.cy.c>129scompat_alloc_"L1"_spac5 &nodatv2.pdon'tilloc_c#L5"ajcodeneL5"essalloc_c#L5 &noL1320* C5p">7l52m1276="L1"> 1wmass)p  id="L4action="ajcode=mmss/a>1246.cy.c>1145#L6" {"> 5  6<<<<<<<<"} id="L4" class="li525aam10="L5">  0 1120na51185=5237 6 action="ajcoden longs3<52" nam13585d="4* Bs= action="ajcoden5wess/52AULTrss/a> 135sss:c<6<"> 37 6 ame7="L<<<<<<<<13095L6" ame7=".codem5xncod52deEIOrss/a> 114ude &pmass=,6actcode=c#L5"ajcodeneL5"esscode=c#L5 &no 135ass="code=c#L5"ajcodeneL5"esscode=c#L5 &no=glistess/a> 114ssc#L5ofdatv2.pdon'tbgp<124ca>1246.cybam127)eLng/.c#*sizeof( illoc_c#L5"ajcodeneL5"essalloc_c#L5 &no6<<<<<<<<"} id="L4" class="li5"ajcodem"l5_ou_tss/a>1246.cybam127ss,61246.cy.c>153  action="ajcodemaxncoLinux kernel.
/* ensure entire bitmap is zero1"> ame7="L 154ssl.
153 &IGRATE_SYNCtass,61246.cy.came7="L6 ,6129scompat_pudgbitmap &nodatv2.pdon't getep<124ca>1246.cy.came7="L6 ,61246.cybam127ss,6chmass)6 {"5 5  653de EINVAL/.c# {"> 5  6 1cla" id="L5" class114* >1142c#L5""> 37 6 action="ajcodeLIST_HEADE3 5  6127> 124y getsep 125sut t>compat_u 114unsigned long actcompat_u 114une__us"eass=,(action=" class="line" nam1284="L1"> 124s,61246.cy.came7="L6"> 37 6 6<"> 37 6 action="a5on="ajcode5p_wri>eess/a>ee54 id="L4" class="line" nam1241a> 37 6<"> 151242="L1"> 124  3 37 6 ame7="L<<<<<<<< 37 6asu0 action="ajcodeLIST_HEADE3 124s,61246.cy.c>154de EINVAL/.c#n class="e neL5"eass=p id="L4nr_bitsertass= *action=r_bitsode=eLng/.c#*sizeof( illoc_c#L5"ajcodeneL5"essalloc_c#L5 &no 1wmass)p  id="L4DECLARE_BITMAP"ajcodeneL5"essDECLARE_BITMAP &nodatv2.pdon'tbgp<124ca>1246.cybam127ss,61316.cy.came7="L<512412485 114ss,65span class="com124  >12515L6" a55ction="ajcode/a> 135sss:c<6<"> 37 6 ame7="L<<<<<<<<55  action="ajcodemaxncodess/a> 124Su cpasude &nodgeascompat_godgbitmap" cla1249h>129scompat_godgbitmap &nodatv2.pdon'tbgp<124ca>1246.cybam127ss,61246.cy.came7="L6 ,61246.cy.c>129scompat_alloc_"L1"_spac5 &nodatv2.pdon'tilloc_c#L5"ajcodeneL5"essalloc_c#L5 &noL1246.cy.c>1246.cybam127ss,6 5  6 5  6 37 6<"> 55 6125s5i5std55em"li_set_&nodeL5"tss"L1"> 135	isli5derleaves	  first135su>1324.cy.came7="L action="ajcodeno"mm_add5tss5ude &vma.c5s/a> 1cla" id="L5" clsys_dodgjcoden loess/a> 125sut t> gp<124ca>1246.cy.c> 5  6567="L5spasu56 &IGR> 124y getsep 125sut t>compat_u 114unsigned long actcompat_u 114une__us"eass=,(action=lensigned long actlen7="L6"> 37 6 6<"> 37 6 action="a5ajcodenr_f5ile 5ss/a> 125sut t>compat_u 114unsigned long actcompat_u 114une__us"eass=,(action=" class="line" nam1284="L1"> 124s,61246.cy.came7="L6"> 37 6 6<"> 37 6 action="a5a>1145#L6" {"> 5  6 1246y and en1* Su#i5clude5637 6<<"> 37 6 ame7="L<<<<<<<< 37 6asu0 action="ajcodeLIST_HEADE3 124s,61246.cy.c> 124ighss= h* Su cla" i5="L1256"ajcode&MPOLMsude &nodgeass)[op sct unsigned long action="ajcode__us"eass=,(action=bgp<124ca>1246.cybam1275124mpolih*5Su cla" id="L5"124mp>12765 Cop"57=nodgs3 114ss,6 37 6e &pmassL-8ionailloc_c#L5"ajcodeneL5"essalloc_c#L5 &no=glistess/a> 135sss:c<6<"> 37 6 ame7="L<<<<<<<< 1p"> 37 6e &pmassL-8ionaeline" nam1269="L1"> 124Su cpasude &nodgeascompat_godgbitmap" cla1249h>129scompat_godgbitmap &nodatv2.pdon't t>
  ion="ajcodeneL5"ess t>
  ion= &nodatv2.pdon'tbgp<124ca>1246.cybam127)eLng/.c#*sizeof(  getep<124ca>1246.cy.came7="L6 ,61275c#L5p57ion="ajcodecurrChrisspasude &nodgeas gp<124ca>1246.cy.c>129scompat_alloc_"L1"_spac5 &nodatv2.pdon'tilloc_c#L5"ajcodeneL5"essalloc_c#L5 &noL12725 id="57356">131s i5stdivcy.cwmass)p  id="L4action="ajcode=mmss/a>1246.cy.c>
  ion="ajcodeneL5"ess t>
  ion= &nodatv2.pdon'tbgp<124ca>1246.cybam127)eLng/.c#*sizeof( illoc_c#L5"ajcodeneL5"essalloc_c#L5 &noL 124sp5ox" h57 action="ajco" class="line" nam1352="L1">5inerfdcd7w5th variabld sized bitpaas5for &5737 6-- action="ajcodemaxncodess/5  6 124 5* Su 58ction="ajcode/a> 37 6<">12845 135	isli5derleaves	  first135su>1324.cy.came7="L action="ajcodeno"mm_add5tss5eL5"gfrom 5ser  idcd.nrmamee="L6"> 55 6
 1cla" id="L5" clsys_mbin= &= action="sys_mbin= &nod5"eass=p id="L4starnsigned long actstarnc1254="L1"> 125sut t>lensigned long actlen7="L6s"eass=,(action=o 5  6 125sut t> gp<124ca>1246.cy.c>1145#L6" {"> 5  6<<<<<<<<"} id="L4" class="li5 spasude m5demaxncodess/a>5 124igrate5h* Su cla" id="L124ig>1285ine" 5837 6129.5 Cop"58dlistsOsthe Linux kernel.1289#L6"* @tu11 - tu11 for fallba="135svmaased t12== default" id="L5" class="line* User  idcd75>24mpolih*5 =="ms_clea5eass= *action5"ajco59POLMF Linux kernel.
"* @vmaa  - virtual mcoory area whoseased t12is sought" id="L5" class="line* User  idcd75>L5"gfrom 5 =axncod/.c#L  =0 || ( ac5ion="5937 6p Linux kernel.
"* @ion=  - ion=et iin @vmaafor sharedased t12lookup" id="L5" class="line* User  idcd75>jcodenr_f5nam1244="L1"> 124* Su#inc5ude &5t; id= Linux kernel.
"*" id="L5" class="line* User  idcd75>spasude m5 =axncod/.c#L-8io  action5"ajco597="L< Linux kernel.
"* RL1"> s effec"iveased t12for a VMA atr1"> 135*  ion=et ." id="L5" class="line* User  idcd75deEINVALrs5/a>
"* Ccy.cam or other tu11's tu11 e* User   and non-sharedavmaased ties must bc" id="L5" class="line* User  idcd75d longs3
"* protec"edaby tu11id="L(tu11)aby the caller." id="L5" class="line* User  idcd75dnel.1289#L6"* freeingaby another tu11.  It2is the caller's =etponsibility1to free the" id="L5" class="line* User  idcd76m1351="L1"6 =="ms_clea5eass= *action6io-li60POLMF Linux kernel.
"* extraj"Lfe.caccafor sharedased ties." id="L5" class="line* User  idcd76135
	 asmu6notifier h* Su 135
	>13006 Cop"6037 6p Linux kernel.
"*ame7="L 124* Su#inc6uppor607="L 37 6 6<"> 37 6 action="a6"45
	 asmu6n=axncod/.c#L-8io  action6amee=60de EINVAL/.c#p  id="Lstruc 37 6<"> 37 6 ame7="L<<<<<<<<6spasude & long/.c#L-8io  6ction60ion="ajcodecustruc6on="ajcode6INVALrss/a> 37 6 ame7="L<<<<<<<< 124edih* Su vm_opcla114 h>1145#L6vm_opcclassSTRICTrss/a,6 124edih* Su vm_opcla114 h>1145#L6vm_opcclas3="L1"> 124edih* Su godgUser  ess/a> 37 6 ame7="L<<<<<<<< 124edih* Su vm_opcla114 h>1145#L6vm_opcclas3="L1"> 124edih* Su godgUser  ess/a> 37 6 6<"> 37 6 action="a6di- action6"ajcodeEFAULTrss/a>6ajcode"ess6a> 37 6<">6a45
	 asmu6 action="ajcodeEINVALrss/6> 124edih* Su vm_User  ess/a> 37 6 ame7="L<<<<<<<< 1p"> 37 6j,6 124edih* Su vm_User  ess/a>6aongs36"ajcodeEINVALrss/a> 1356"
	or	offset i56 >
	 61356">131s i5stdivcy.cj,6 165  21289#L6"""""""""""""""""""""""""* count on theseased ties which2will be droppedaby" id="L5" class="line* User  idcd765i- action6span class="com135  >13226L6" a62POLMF Linux kernel.
"""""""""""""""""""""""""*  Use_cond_pud()alatea &id="L5" class="line* User  idcd765jcode"ess6spasude copy_from_usereas6= act6237 6p Linux kernel.
"""""""""""""""""""""""""*ame7="L 37 6<">61_3="L1320* C6p">7l62m1276="L1"> 1p"> 37 6" class="line" nam1352="L1">625aam10="L6">  0 1120na61185=62 class="line"" class="line" nam1352="L1">62" nam13586d="4* Bs= action="ajcoden6wess/62AULTrss/a>628="ajcode65sm>13095L6" ame7=".codem6xncod62deEIOrss/a> 124"L5" clasdefault_User  ess/a>62 action="6sude er5/.c#L  id="L4" cl6ss="l62 class="line""L1"> 1cla" id="L5" cldeness/a>6"ajcodem"l6_ou_tss/a> 5  61637="L 164ssl.
163 &IGR" _tico/Su cla" id="L5" clapply_User  _zon5"ajcodeneL5"essapply_User  _zon5 &nodstruc6"eEFAULTrs63 37 6 ame7="L<<<<<<<<chmass)6 {"6 5  663de EINVAL/.c#enums"eass=,(action=zon5_typ5"ajcodeneL5"esszon5_typ5 &no4"eass=,(action=dyassic_User  _zon5"ajcodeneL5"essdyassic_User  _zon5>6"_3="L6eass=6337 664ewmassp  6eess/a>ee64a" id="L5" cla124 h>1289#L6"""""""""* we applyased t12when gfp_zon5(gfp)asuZONE_MOVABLE only." id="L5" class="line* User  idcd76o2="L1"> 161242="L1"> 124  3
"""""""""5" id="L5" class="line* User  idcd76deer5rss/a6
_" _tes[N_MEMORY]." id="L5" class="line* User  idcd76oeEFAULTrs6FREVE3
"""""""""*usopasuthe followingatest faile, it implijcodid="L5" class="line* User  idcd76o66<">1647="L< Linux kernel.
"""""""""*uUser  3="L1v. t>
  has movabl5 mcoory only." id="L5" class="line* User  idcd76o_3="L
"""""""""*ame7="L 124edih* Su vess/a>
_" _tesertass= *action="aj_" _tes> 37 6<">131s i5stdivcy.cwmass)p  id="L4dyassic_User  _zon5"ajcodeneL5"essdyassic_User  _zon5>6ude &vma.c6L =6action="ajcodecheck_r6nnges64deBITLLLLLLL 1cla" id="L5" clzon5"ajcodeneL5"esszon5>6124  26span class="com124  >12516L6" a65ction {"> 5  6657="L
L5" id="L5" class="line* User  idcd76/a>
"* RL1">  a ion="ajc""Lpresentingaa e* User   for filteainga t>
  for" id="L5" class="line* User  idcd76/66<">12596L6" a657="L< Linux kernel.
"* istt alloc_tion" id="L5" class="line* User  idcd76/_3="L 5  6
"*ame7="L 37 6<"> 56 6125s6i5std65em"li<"> 37 6 ame7="L<<<<<<<< 124edih* Su o 5  6 124"L5" claspen loess/a> 124edih* Su vess/a> 37 6<">6spasu66 &IGRATE_SYNCtass,6 1=="L1"> 124"L5" claspen loess/a> 124edih* Su vess/a> 1cla" id="L5" clNUa> 1246y and en1* Su#i6clude66m1276 {"> 5  612626#L5""6637 6 action="ajcoden longs3<6_faile 5ss6a>
/* RL1">  a zon5list indic_tedaby gfp for ="aj""Lpresentingaa e* User   *ame7="L 37 6 6<"> 37 6 action="a6_rss/a> 124ighss= h* Su cla" i6="L1266"ajcode&MPOLM/Su cla" id="L5" cln= &= action="n= &no<"> 37 6<"> 37 6 ame7="L<<<<<<<<12766 Cop"67=nodgs3 124edih* Su o 5  6 37 6 ame7="L<<<<<<<<eeass= & action="6jcode670* Cop"> 37 6caseude &pmass=,6act124asPREFERRED 6 37 6 ame7="L<<<<<<<<<"3,6 124edih* Su L5" cla114 h>1145#L6" {"> 5   Trss/a,6 37 6<"> 124edih* Su vess/a> 1p"> 37 6break1276c#L5p67ion="ajcodecucaseude &pmass=,6act124asBIND 6 37 6 ame7="L<<<<<<<<12726 id="67356">131s i5stdivcy.cwLinux kernel.
L5" id="L5" class="line* User  idcd761eer5rss/a6>
 124sp6ox" h67s/a>__GFP_THISy.ca2is sod and the" id="L5" class="line* User  idcd76  6 124 6* Su 68a" id="L5" cla124 h>1289#L6"""""""""""""""""* ccy.cam ="aj"isn't part osuthe mu11, we udouthe zon5list for" id="L5" class="line* User  idcd76 24mpolih*6Su cla" id="L5"124 p>12846
"""""""""""""""""*uthe firsm ="aj"inuthe mu11 instead." id="L5" class="line* User  idcd76eL5"gfrom 6ser  idcd.nrmamee="L6"> 56 6
"""""""""""""""""*ame7="L<,6 124edih* Su vess/a> 37 6<"> 1p"> 37 6j,6 124edih* Su vess/a>6"ess/a>131s i5sdefault:"> 37 6 ame7="L<<<<<<<<6"nerfdcd7w6 h* Su cla" id=124sy>129.6 Cop"68"ajcode&MPOLM {"> 5  6 1cla" id="L5" cl t>
_zon5list"ajcodeneL5"ess t>
_zon5list &no3,66>24mpolih*6 =="ms_clea5eass= *action6"ajco69POLMF {"> 5  6jcodenr_f6nam1244="L1"> 124* Su#inc6ude &6t; id= Linux kernel.
/* Do dyassiciintealeavingafor a procet "*ame7="L
 ertass= *actionintealeave_ t>
  &no3struc 37 6<"> 37 6 ame7="L<<<<<<<<124 >>12926#L5""69ion="ajcodecun class=",6131s i5sstruc 124edih* Su ie_next"ajcodeneL5"essie_next &no 124edih* Su vess/a>7m1351="L1"7 =="ms_clea5eass= *action7io-li70=nodgs31316.cy.came7="L class="line" nam1248="L1">7m2351="L1"7 =axncod/.c#L  =0 || ( ac7 Cop"70 &IGRATE_SYNCtass,6 124edih* Su vess/a>7"35
	 asmu7nam1244="L1"> 124* Su#inc7uppor703nodgs31316.cy.came7="L class="line" nam1248="L1">7m45
	 asmu7n=axncod/.c#L-8io  action7amee=70de EINVAL/.c#p  id="Listess/a> 124edih* Su ie_next"ajcodeneL5"essie_next &no=glistess/a> 1"L1"> 1cla" id="L5" cl i= &= action="ni= &no 5  61289#L6"*  ext slab entry." id="L5" class="line* User  idcd77di- action7"ajcodeEFAULTrss/a>
"* @User   must bc protec"edaby freeingaby the caller.  If @User   icodid="L5" class="line* User  idcd77ajcode"ess7a>
"* the ccy.cam tu11's e* User  , this protec"ionui iimplicit, assonly the" id="L5" class="line* User  idcd77a35
	 asmu7ode_tss/a>
"* tu11 cnux hange it's User  i  The system defaultased t1j"Lquires io" id="L5" class="line* User  idcd77a45
	 asmu7 action="ajcodeEINVALrss/7>
"* such2protec"ion." id="L5" class="line* User  idcd77d>7"ajcodeEINVALrss/a>7an="ajcode7"L1"> 1356"
	or	offset i57 >
	 71em"li<"> 37 6 ame7="L<<<<<<<< 175  275i- action7span class="com135  >13227L6" a72  action="ajcodemaxnc"L1"> 1cla" id="L5" cl uma_ t>
_i= &= action="numa_ t>
_i=e7="( " class="line" nam1248="L1">75jcode"ess7spasude copy_from_usereas7= act7237 6pan>
 124edih* Su ocoden loess/a>7545
	 asmu7&nodm_add5eass= *action="7jcode72de EINVAL/.c#asud"line" nam2e="L1den loess/a> 124edih* Su L5" cla114 h>1145#L6" {"> 5   Trss/a,675>1320* C7p">7l72m1276="L1"> 1p"> 37 6"L1"> 1cla" id="L5" cl uma_ t>
_i= &= action="numa_ t>
_i=e7="( " class="line" nam1248="L1">75ongs37">  0 1120na71185=7237 6 action="ajcoden longs3<72" nam13587d="4* Bs= action="ajcoden7wess/72AULTrss/a> 124edih* Su o 5  6 37 6 ame7="L<<<<<<<< 37 6 ame7="L<<<<<<<<1289#L6"""""""""""""""""* handls="124asF_LOCA> above" id="L5" class="line* User  idcd77"i- action74"L3" class="line" namee174"L>173POLMF Linux kernel.
"""""""""""""""""*ame7="L 174ssl.
173 &IGRATE_SYNCtass,6 1de &pmass=,6actUser  ess/a> 124edih* Su vess/a>chmass)6 {"7 5  673de EINVAL/.c#caseude &pmass=,6act124asINTERLEAVasigned long act124asINTERLEAVa* Co:"> 37 6 ame7="L<<<<<<<< 1p"> 37 6"L1"> 1cla" id="L5" clintealeave_ t>
 ertass= *actionintealeave_ t>
  &no3,67ess/a> 37 6 ame7="L<<<<<<<<eess/a>ee74a" id="L5" cla124 h>1289#L6"""""""""""""""""* firsm ="aj." id="L5" class="line* User  idcd77o2="L1"> 171242="L1"> 124  3
"""""""""""""""""*ame7="L174de EINVAL/.c#p  id="Lenums"eass=,(action=zon5_typ5"ajcodeneL5"esszon5_typ5 &no4"eass=,(action=highest_zon5idx"ajcodeneL5"esshighest_zon5idx &noasude &pmass=,6actgfp_zon5"ajcodeneL5"essgfp_zon5 &no3,6 1p"> 37 6e &pmassL-8ionazon5list"ajcodeneL5"esszon5liste__ussu=="L1"> 124"L5" clasy.ca_DATA"ajcodeneL5"essy.ca_DATA &no3,6
_i= &= action="numa_ t>
_i=e7="( )3="L1"> 124edih* Su  t>
_zon5listsertass= *action="aj_zon5listse7="[0] 37 6 6<"> 37 6 action="a712412487131s i5stdivcy.ccccccccccccccccccccccccccccccccccccccccc=="L1"> 124"L5" claspen loess/a> 124edih* Su vess/a> 37 6 6<"> 37 6 action="a71ss/a> 124"L5" claszon5"ajcodeneL5"esszon5> 1cla" id="L5" clzon5"ajcodeneL5"esszon5> 124edih* Su  t>
ertass= *action="aj>
_i= &= action="numa_ t>
_i=e7="( " class="line" nam1248="L1">7124  27span class="com124  >12517L6" a75ction="ajcode {"> 5  6757="L 37 6 ame7="L<<<<<<<<7/66<">12597L6" a754tion="ajcode {"> 5  6 5  6 5  6<7124"L6"> 57 6125s7i5std75
/* Do " _tico/Suealeavingafor a VMA with known offset."*ame7="L
ertass= *actionoffset_ie_nt>
e7="(struc 37 6 6<"> 37 6 action="a7_rss/a>7denr_faile75ss/a> 37 6 ame7="L<<<<<<<<
 ertass= *action=="ajc>
c_weight &no3,6 124edih* Su vess/a>7666 action7"ajcodeMIGRATE_SYNCrss/a>7spasu76 &IGRATE_SYNCn class=",6 1246y and en1* Su#i7clude7637 612627#L5""76POLMF_MOVEs3<"line" nam2e="L1  t>
 ertass= *action=="ajc>7d24"L6"> 57a>131s i5stdivcy.c"L1"> 1cla" id="L5" cl uma_ t>
_i= &= action="numa_ t>
_i=e7="( " class="line" nam1248="L1">7deer5rss/a77drss/a> 124ighss= h* Su cla" i7="L1276"ajcode&MPOLMsude &nodgeass)c &= action="ce__u=gl0" class="line" nam1248="L1">7k_lru_pang7s3 37 6 ame7="L<<<<<<<<12767 Cop"77  action="ajcodemaxnccla" id="L5" clni= &= action="ni= &no=glcla" id="L5" clnext_ER_LONG/.c#L)L- 1p  ext_ER_L &no3,6 124edih* Su vess/a>7eeass= & action="7jcode77 &IGRATE_SYNCtass,677<66<"> 1cla" id="L5" cl i= &= action="ni= &no 5  61277c#L5p7737 6 action="ajcoden longs3<712727 id="77
/* DeueamL5" a ion= numberafor intealeave"*ame7="L 124sp7ox" h77 acti" _ticocla" id="L5" clin49="L1tass= *actionin49="e EINn class=",6 37 6 6<"> 37 6 action="a7inerfdcd7w7th variabld sized bitpaas7for &77 class="line"tion="ajjstruc7  6 124 7* Su 78s= &a<"> 37 6 ame7="L<<<<<<<<12847 37 6 ame7="L<<<<<<<< 57 6
"""""""""""""""""*afor small istts, therj"is io diffe.caccabetween" id="L5" class="line* User  idcd77"ess/a>
"""""""""""""""""*ashif< an=aPAGE_SHIFT,usopthe bit-shif< is safj." id="L5" class="line* User  idcd77"24port h*7>
"""""""""""""""""*afor huge istts, siaccavm_Ugoff i iinan its osusmall" id="L5" class="line* User  idcd77"eer5rss/a7a>129.7 Cop"78dlistsOsthe Linux kernel.1289#L6"""""""""""""""""*ame7="L7>L5"gfrom 7 =axncod/.c#L  =0 || ( ac7ion="79 &IGRATE_SYNCtass,6 124edih* Su vm_Ugoffertass= *actionvm_Ugoff>7>jcodenr_f7nam1244="L1"> 124* Su#inc7ude &79s= action="ajjjjjjjjjcla" id="L5" cloffertass= *actionoff> 124edih* Su vm_starnertass= *actionvm_starn>spasude &MPOLMFshif7>spasude m7 =axncod/.c#L-8io  action7"ajco79de EINVAL/.c#p  id="L"L1"> 1cla" id="L5" cloffset_ie_nt>
ertass= *actionoffset_ie_nt>
e7="(,67>124igrate7/a> 1} else class="line" nam1248="L1">7>ess/a>124 >>12927#L5""79ion="ajcodecurrChriss"L1"> 1cla" id="L5" clintealeave_ t>
 ertass= *actionintealeave_ t>
  &no3,67>24port h*7ng/.c#L = action="ajcodeB7TS_TO79356"> {"> 5  61289#L6"* RL1">  the bit numberaosua ran=om bit sod inuthe ion="ajc." id="L5" class="line* User  idcd78m1351="L1"8 =="ms_clea5eass= *action8io-li80POLMF Linux kernel.
"* ("L1"> s -1s/a>ion="ajc"i i* Uty)" id="L5" class="line* User  idcd78m2351="L1"8 =axncod/.c#L  =0 || ( ac8 Cop"8037 6p Linux kernel.
"*ame7="L 124* Su#inc8uppor803nodg/Su cla" id="L5" clnt>
_ran=omertass= *action="aj_ran=om &no3consu cla" id="L5" clnt>
sct unsigned long action="ajcode__uss,68m45
	 asmu8n=axncod/.c#L-8io  action8amee=80de EI<"> 37 6 ame7="L<<<<<<<< 1/Su cla" id="L5" clwsigned long actw><8on="ajcode8INVALrss/a>131s i5scla" id="L5" clwsigned long actw>
c_weight &no3s,68m9="ajcode8Iude endeL5"/.c#L =~0ULp 8p  id80 class="line"tion="aj,6 124edih* Su bitsertass= *actionbitc> 37 6 6<"> 37 6 action="a8ajcodeget_8sers31316.cy.came7="L 1cla" id="L5" clbitsigned long actbit &no 5  6, @ Use)" id="L5" class="line* User  idcd78an="ajcode8"L1"> 1356"
	or	offset i58 >
	 81
"* @vma=glvirtual mcoory area whoseased t1jis sought &id="L5" class="line* User  idcd78a8="ajcode8ude & long/.c#L = action=8ajcod81s/a>=glfor "Lques"edazon5> 185  21289#L6"* @ Use=glpointea"toae* User  lpointea"for "Lfe.caccacoun"edajcoden lo &id="L5" class="line* User  idcd785i- action8span class="com135  >13228L6" a82POLMF Linux kernel.
"* @ion="ajc"glpointea"toaion="ajc"pointea"for 124asBIND"ion="ajc &id="L5" class="line* User  idcd7852351="L1"8spasude copy_from_usereas8= act8237 6p Linux kernel.
"* &id="L5" class="line* User  idcd78535
	 asmu8/a> s a zon5list suitabl5 for a huge istt"alloc_tion an=aa"pointea &id="L5" class="line* User  idcd78545
	 asmu8&nodm_add5eass= *action="8jcode827="L< Linux kernel.
"* topthe struc1320* C8p">7l82m1276 Linux kernel.
"* If the effec"iveased t1jis 'BIND, rL1"> s a pointea"toathe mcosed t1's" id="L5" class="line* User  idcd785ongs38">  0 1120na81185=82ion=" Linux kernel.
"* @ion="ajc"for filteaingathe zon5list." id="L5" class="line* User  idcd785n="ajcode8d="4* Bs= action="ajcoden8wess/82
"*" id="L5" class="line* User  idcd7858="ajcode85sm>13095L6" ame7=".codem8xncod82s/a>183Tsppsp  id="L4" class nam1241 nam1241cla" id="L5" clgfp_nsigned long actgfp_n &no4"eass=,(action=gfp_L5" cla114 h>1145#L6gfp_L5" c> 37 6 6<"> 37 6 action="a843="L1"> 184ssl.
183 &IGRATE_SYNCtass,6
sct unsigned long action="ajcode__usss,68"eEFAULTrs83 37 6 ame7="L<<<<<<<<chmass)6 {"8 5  683de EINVAL/.c#struc8ess/a> &no
/* ernume !124asBIND"*ame7="L 124edih* Su o 5  6 37 6 ame7="L<<<<<<<<
_zon5list &no3,6 37 6 6<"> 37 6 action="a8o2="L1"> 181242="L1"> 124  31145#L6gfp_L5" c> 37 6 ame7="L<<<<<<<<1145#L6gfp_L5" c>
_i= &= action="numa_ t>
_i=e7="( )184de EINVAL/.c#p  id="LNGE33s,6 124edih* Su o 5  6 1p"> 37 6NVAL/.c#s,6 124edih* Su vess/a> 5  6131s i5s"L1"> 1cla" id="L5" clzness/a> 5  612518L6" a85a" id="L5" cla124 h>1289#L6L5" id="L5" class="line* User  idcd78ude er5/.c8L = action="ajcodePTR_ERR8ss/a>85POLMF Linux kernel.
"* inidgion="ajcoof_jcoden lo &id="L5" class="line* User  idcd78ueer5rss/a8 IS_ERReass= action="ajco8e=vma8537 6p Linux kernel.
"* &id="L5" class="line* User  idcd78/a>
"* If the ccy.cam tu11's e* User  jis "default" [NUa>], rL1">  'false' &id="L5" class="line* User  idcd78/66<">12598L6" a857="L< Linux kernel.
"* topindic_te defaultased t1.  Otherwise, extractrtheased t1jion="ajc &id="L5" class="line* User  idcd78u_3="L 5  6
"* for 'bin=' or 'intealeave' User  jintoathe argumcam ="ajmu11, or" id="L5" class="line* User  idcd78_faile 5ss8a>125s8i5std85
"* 'preferred' or 'loc_l' User  jan=arL1">  'true' topindic_te prescacc" id="L5" class="line* User  idcd78_ss/a>ion-defaultae* User  i" id="L5" class="line* User  idcd78_ action="8NCVE31289#L6"* We don't bother with rLfe.caccacoun"ingathe e* User  j[ Use_get/put]" id="L5" class="line* User  idcd78dde er5/.c8ed lon) action="ajcode=vm8ss/a>86POLMF Linux kernel.
"* becaudouthe ccy.cam tu11"i i*xaminingait's own e* User  jan=aa"tu11's" id="L5" class="line* User  idcd78deer5rss/a8"ajcodeMIGRATE_SYNCrss/a>8spasu8637 6p Linux kernel.
"* e* User  jis only everx hangedaby the tu11"itselfi" id="L5" class="line* User  idcd78da>
"*" id="L5" class="line* User  idcd78d66<"> e= ion="ajc." id="L5" class="line* User  idcd78d_3="L 1246y and en1* Su#i8clude86m1276 Linux kernel.
"*ame7="L12628#L5""86POLMFcla" id="L5" clboeness/a> 58a> 37 6 ame7="L<<<<<<<< 124ighss= h* Su cla" i8="L1286"ajcode&MPOLM/Su cla" id="L5" clni= &= action="ni= &no12768 Cop"87=nodgs3 124edih* Su ocoden loess/a>8eeass= & action="8jcode87 &IGRATE_SYNCtass,6 1cla" id="L5" clfalseess/a> 124edih* Su ocoden loess/a>8kfaile 5ss8 Su cla" id="L5"124ri>1278c#L5p87ion="ajcodecuswitchE3,6 124edih* Su o 5  6 37 6 ame7="L<<<<<<<<12728 id="877e EINVAL/.c#caseude &pmass=,6act124asPREFERRED 6 37 6 ame7="L<<<<<<<<
 124sp8ox" h87deEIOrss/a> 124edih* Su L5" cla114 h>1145#L6" {"> 5   Trss/a,68inerfdcd7w8th variabld sized bitpaas8for &87 class="line"tion="ajjVAL/.c#cla" id="L5" clni= &= action="ni= &no=glcla" id="L5" clnuma_ t>
_i= &= action="numa_ t>
_i=e7="( " class="line" nam1248="L1">8  6 124 8* Su 88 id="L4" class="line"else class="line" nam1248="L1">8 24mpolih*8Su cla" id="L5"124 p>12848 124edih* Su vess/a> 58 68 a>8 66<">8 " nam12668h* Su cla" id="L124ig>1288ine" 885e EINVAL/.c#caseude &pmass=,6act124asBIND 68 faile 5ss8sude k/.c#p  id="L4" clas8="lin88ion="ajcodecurrChrisscLinux kernel.
/* Fall through"*ame7="L 37 6 ame7="L<<<<<<<< 124edih* Su vess/a>129.8 Cop"88 class="line"tion="ajbreak" class="line" nam1248="L1">8> 37 6 ame7="L<<<<<<<<L5"gfrom 8 =axncod/.c#L  =0 || ( ac8ion="89 &IGRATE_SYNCtass,68>jcodenr_f8nam1244="L1"> 124* Su#inc8ude &89s= action="aj {"> 5  6 1cla" id="L5" cltruesigned long acterue> {"> 5  6 5  61289#L6L5" id="L5" class="line* User  idcd79m1351="L1"9 =="ms_clea5eass= *action9io-li90POLMF Linux kernel.
"* e* User  gion="ajcointeasects" id="L5" class="line* User  idcd79m2351="L1"9 =axncod/.c#L  =0 || ( ac9 Cop"9037 6p Linux kernel.
"*" id="L5" class="line* User  idcd79m3351="L1"9 am1244="L1"> 124* Su#inc9uppor90; id= Linux kernel.
"* If t11's e* User  jis "default" [NUa>], rL1">  'true' topindic_te default" id="L5" class="line* User  idcd79m4351="L1"9 =axncod/.c#L-8io  action9amee=907="L< Linux kernel.
"* sed t1.  Otherwise, checkafor inteasec"ionubetween mu11 an=atheased t1" id="L5" class="line* User  idcd79m5351="L1"9 a>
"* ion="ajc"for 'bin=' or 'intealeave' User  .  For 'perferred' or 'loc_l'" id="L5" class="line* User  idcd79m6351="L1"9 .20.4124 >>12929ction90ion=" Linux kernel.
"* User  , always rL1">  true siaccait muy"alloc_te elsewherj"onufallbacc." id="L5" class="line* User  idcd79on="ajcode9INVALrss/a>
"*" id="L5" class="line* User  idcd79a8="ajcode9I =axncod/.c#L-#37;= acti9eBITS90s/a>
sct unsigned long action="ajcode__uss,6 37 6 ame7="L<<<<<<<<<"line" nam2e="L1"ajcsigned long act"ajc &no 1356"
	or	offset i59 >
	 91356">131s i5stdivcy.c"L1"> 1cla" id="L5" clrodsigned long actrode__u/if (action="ajcoden longs3<9a8="ajcode9ude & long/.c#L = action=9ajcod91 action="ajcoe6 124edih* Su ocoden loess/a>951="L1"> 195  2951351="L1"9span class="com135  >13229L6" a92Tsppsp  id="L4" classgotopline" nam2e="L1oudsigned long actoud &no" class="line" nam1248="L1">952351="L1"9spasude copy_from_usereas9= act9237 6p class="line" nam1248="L1">9535
	 asmu9/a> 124edih* Su o 5  6 37 6 ame7="L<<<<<<<< 37 6 ame7="L<<<<<<<<1320* C9p">7l92m1276="L1"> 1p"> 37 6e"L5" cla124 h>1289#L6L5" id="L5" class="line* User  idcd795ongs39">  0 1120na91185=92ion=" Linux kernel.
"""""""""""""""""* 124asPREFERRED an=a124asF_LOCA> are only preferred ion=s"to" id="L5" class="line* User  idcd795n="ajcode9d="4* Bs= action="ajcoden9wess/92
"""""""""""""""""* alloc_te from, they muy"fallbacc topother ion=s"when oomi" id="L5" class="line* User  idcd7958="ajcode95sm>13095L6" ame7=".codem9xncod92s/a>1289#L6"""""""""""""""""*ame7="L193Tsppsp  id="L4" classbreak" class="line" nam1248="L1">943="L1"> 194ssl.
193 &IGRATE_SYNCcaseude &pmass=,6act124asBIND 69"eEFAULTrs93 37 6 ame7="L<<<<<<<<chmass)6 {"9 5  693de EINVAL/.c#p  id="L"eass=,(action=rodsigned long actrode__u=glcla" id="L5" cl t>
c_inteasectsess/a>
c_inteasects &no3,6 124edih* Su vess/a>94>9eass=93m1276="L1"> 1p"> 37 6break" class="line" nam1248="L1">94ongs39ess/a> 37 6 ame7="L<<<<<<<<131s i5stdivcy.cpasude &nodgeasBUGertass= *actionBUGe7="( " class="line" nam1248="L1">9dss/a> 5  6 37 6 ame7="L<<<<<<<< 191242="L1"> 124  3 1cla" id="L5" clrodsigned long actrode__u/if (action="ajcoden longs3<9deer5rss/a9 5  61947="L< Linux kernel.
/* Alloc_te a istt"in intealeave=ased t1i" id="L5" class="line* User  idcd79d_3="L
"""Own isth becaudouit needs"toado special accoun"ing."*ame7="L131s i5stdivcy.cccccccccccccccccccccccccn class=",6 37 6 ame7="L<<<<<<<<12519L6" a95ction="ajcodestruc 19L = action="ajcodePTR_ERR9ss/a>957="L
_zon5list &no3,612599L6" a95de EINVAL/.c#/GE3,6 124edih* Su _zon524e ertass= *action_zon524e  &no[0] L class="line" nam1248="L1">9u_3="L 5  6 1p"> 37 6e> 124edih* Su inc_zon5_istt_s _teertass= *actioninc_zon5_istt_s _te> 1cla" id="L5" clisttONG/.c#L)L- 1p pstt &no125s9i5std95356"> {"> 5  61289#L6"*      alloc_istt _vma - Alloc_te a istt"for a VMAi" id="L5" class="line* User  idcd79dde er5/.c9ed lon) action="ajcode=vm9ss/a>96POLMF Linux kernel.
"*" id="L5" class="line* User  idcd79deer5rss/a9"ajcodeMIGRATE_SYNCrss/a>9spasu9637 6p Linux kernel.
"*      @gfp:" id="L5" class="line* User  idcd79da>
"*      %/GFP_USERccccnsea"alloc_tion." id="L5" class="line* User  idcd79d66<"> 1246y and en1* Su#i9clude96m1276 Linux kernel.
"*      %/GFP_HIGHMEM highe* /nsea"alloc_tions," id="L5" class="line* User  idcd79dongs39lude < id="L124* >12629#L5""96ion=" Linux kernel.
"*      %/GFP_FS      alloc_tion should iot call bacc intoaa file systemi" id="L5" class="line* User  idcd79d24"L6"> 59a>
"*      %/GFP_ATOMIC  don't sleepi" id="L5" class="line* User  idcd79dss/a> 124ighss= h* Su cla" i9="L1296dlistsOsthe Linux kernel.1289#L6"*      @vma:  Pointea"toaVMA or NUa>s/a>iot availabl5." id="L5" class="line* User  idcd79kde er5/.c9Su cla" id="L5"124mp>12769 Cop"97POLMF Linux kernel.
"*      @asud: Virtual Asudet "of the alloc_tion. Must bc i cldouthe VMAi" id="L5" class="line* User  idcd79eeass= & action="9jcode9737 6p Linux kernel.
"*" id="L5" class="line* User  idcd79ka>
"*      a NUMA User  jassoci_ted with the VMA or the ccy.cam procet i" id="L5" class="line* User  idcd79<_3="L
"*      When VMA is iot NUa>scaller must hold down_read"onuthe emap_sem"of the" id="L5" class="line* User  idcd799 Su cla" id="L5"124ri>1279c#L5p97ion=" Linux kernel.
"*      mmastruc<"of the VMA topprevcam it"fromugoingaaway. Should bc nsed for" id="L5" class="line* User  idcd7912729 id="97
"*      all alloc_tions"for istt  that will be eappe=ainto" id="L5" class="line* User  idcd791eer5rss/a9>
 124sp9ox" h97s/a> s NUa>swhen no"istt"canube"alloc_tedi" id="L5" class="line* User  idcd79< action="9th variabld sized bitpaas9for &97dlistsOsthe Linux kernel. 124 9* Su 98a" id="L5" cla124 h>1289#L6"*      Should bc called with the mmasem"of the vma holdi" id="L5" class="line* User  idcd79 24mpolih*9Su cla" id="L5"124 p>12849
"*ame7="L 59 69 " nam12669h* Su cla" id="L124ig>1289ine" 985e EI<"> 37 6 ame7="L<<<<<<<<129.9 Cop"9837 6-- action="ajcodemaxncodess/9> 37 6 ame7="L<<<<<<<<24mpolih*9 =="ms_clea5eass= *action9"ajco99  action="ajc,69>jcodenr_f9nam1244="L1"> 124* Su#inc9ude &997="L 124edih* Su o 5  6 37 6 ame7="L<<<<<<<<124igrate9/a> 1p"> 37 6n class=",69>faile 5ss96.20.4124 >>12929#L5""9937 6 action="ajcoden longs3<9>24port h*9ng/.c#L = action="ajcodeB9TS_TO99356">131s i5stdivcy.cpasude &nodgeasni= &= action="ni= &no=glcla" id="L5" clintealeave_ i= &= action="intealeave_ i=e7="(,69>eer5rss/a9e =axncod/.c#L-#37;= acti9n="aj99deEIOrss/a> 124edih* Su om12_cond_pudsigned long actom12_cond_pude7="(,69> action="9sude endeL5"/.c#L =~0ULp 9id="L99 class="line"tion="aj,620m1class="line"tion="aj/GE3,6class="line" nam1248="L1"20m1351="L120m=="ms_clea5eass= *actio20m==>20mTsppsp  id="L4" class nam1241gotopline" nam2e="L1retry_cpusodsigned long actrodry_cpusod &no" class="line" nam1248="L1"20m2351="L120m=axncod/.c#L  =0 || ( a20m=a>20m37 6p class="line" nam1248="L1"20m3351="L120mam1244="L1"> 124* Su#in20mam>20ms= action="ajjjjjjjjj"L1"> 1cla" id="L5" clisttONG/.c#L)L- 1p pstt &no20mde EINVAL/.c# {"> 5  6>20m5e EINVAL/.c#cla" id="L5" clisttONG/.c#L)L- 1p pstt &no4glistess/a> 5  6124 >>12920m.2>20mion="ajcodecurrChrissssssssssssssssssssssss,6 5  620m356">131s i5stdivcy.ccccccccccccccccccccccc,620mdeEIOrss/a>20m class="line"tion="aj,620sTsppsp  id="L4" classgotopline" nam2e="L1retry_cpusodsigned long actrodry_cpusod &no" class="line" nam1248="L1"2012351="L120a><>20s &IGRATE_SYNC"L1"> 1cla" id="L5" clisttONG/.c#L)L- 1p pstt &no20s356"> {"> 5  620sion=" Linux kernel.
"*      alloc_istt gccy.cam - Alloc_te istt i" id="L5" class="line* User  idcd20s7351="L120"L1"> 1356"
	or	offset i20"L1>20s
"*" id="L5" class="line* User  idcd20s8351="L120ude & long/.c#L = action20ude>20ss/a>20sdlistsOsthe Linux kernel.20537 6p Linux kernel.
"*              %/GFP_FS     don't call bacc intoaa file systemi" id="L5" class="line* User  idcd2053351="L120/a>>205; id= Linux kernel.
"*              %/GFP_ATOMIC don't sleepi" id="L5" class="line* User  idcd2054351="L120&nodm_add5eass= *action=20&no>2057="L< Linux kernel.
"*      @orde=: Powe=aof"twoaof"alloc_tion sizeain istt i 0 is a single istti" id="L5" class="line* User  idcd2055351="L120 acluIm2e="L135" >1320* 20 ac>205m1276 Linux kernel.
"*" id="L5" class="line* User  idcd2056351="L120">  0 1120n20"> >205ion=" Linux kernel.
"*      Alloc_te a istt"fromuthe kern5l"istt"pool.  When iot in" id="L5" class="line* User  idcd2057351="L120d="4* Bs= action="ajcode20d=">205
"*      intearuptpcontextjan=aapply the ccy.cam procet  NUMA User  i" id="L5" class="line* User  idcd2058351="L1205sm>13095L6" ame7=".code205sm>205s/a> s NUa>swhen no"istt"canube"alloc_tedi" id="L5" class="line* User  idcd2059351="L120sude er5/.c#L  id="L4" c20sud>205dlistsOsthe Linux kernel.20_o/a>20_POLMF Linux kernel.
"*      1)ait's o1 toptake cpusod_sem"(canuWAIT),jan=" id="L5" class="line* User  idcd2032351="L1204ssl.
20_37 6p Linux kernel.
"*      2)"alloc_ting"for ccy.cam tu11"(iot intearupt)i" id="L5" class="line* User  idcd2033351="L120320_; id= Linux kernel.
"*ame7="Lchmass)6 {2020_4&IGRstruc 37 6 ame7="L<<<<<<<<20_ion="ajcodecustruc20_deEIOrss/a>20_37 6-- action="ajcodemaxncodess2041351="L120p_wri>eess/a>20p_eEIOrss/a> 124  320pTsppsp  id="L4" class,620p37 6p class="line" nam1248="L1"2043351="L120FREVE320ps= ac,6 37 6 ame7="L<<<<<<<<20pde EINVAL/.c#cla" id="L5" clcpusod_mcos_cookitONG/.c#L)L- 1p cpusod_mcos_cookit &noasude &pmass=,6actgod_mcos_allowe=ess/a><>20pion="ajcodecue"L5" cla124 h>1289#L6L5" id="L5" class="line* User  idcd20p7351="L120	islimpliesonha12412420	is>20p
"""""""""* No rLfe.caccacoun"inganeeded for ccy.cam3="L1jcoden lo &id="L5" class="line* User  idcd20p8351="L120L =6action="ajcodecheck_20L =>20ps/a>20pdlistsOsthe Linux kernel. 124edih* Su o 5  620sTsppsp  id="L4" class,6
 ertass= *actionintealeave_ o>
 e7="(,620s &IGRATE_SYNCelse class="line" nam1248="L1"20s3351="L120 er5/.c#L = action="ajco20 er>20ss= action="ajjjjjjjjjcla" id="L5" clisttONG/.c#L)L- 1p pstt &no4glistess/a> 5  612520t  >20sde EINVAL/.c#p  id="Lp  id="L4" class,6
_i= &= action="numa_ t>
_i=e7="( L6{"> 5  6 5  620sm1276="L1"> 1p"> 37 6p  id="L4" class,6<>20s37 6 action="ajcoden longs320s7351="L120 612520 6<>20s7eEIOrss/a>20sdeEIOrss/a> 1cla" id="L5" clisttONG/.c#L)L- 1p pstt &no {"> 5  62052= ac,62057="L2057="L< Linux kernel.
/*me7="L 1246y and en1* Su#20"L1>205m1276 Linux kernel.
"* If om12_dup() sees ccy.cam3="L1cpusodassucpusod_being_rebound, then it" id="L5" class="line* User  idcd2056351="L120lude < id="L124* >12620lud>205ion=" Linux kernel.
"* rebinds"the m* User  "itsacopyingaby callingaom12_rebindaden lo()" id="L5" class="line* User  idcd2057351="L120a><>205
"* with the mcos_allowe=C"L1"> e=Cby cpusod_mcos_allowe=().  This" id="L5" class="line* User  idcd2058351="L120205s/a> 124ighss= h* Su cla" 20"> >205dlistsOsthe Linux kernel.20s3listsOsthe Linux kernel.12720Su >20sPOLMF Linux kernel.
"* ccy.cam's e* User  jmuy"be rebinde=Cby the other e" n(the tu11"that changes" id="L5" class="line* User  idcd20s2351="L120_wri>eeass= & action=20_wr>20s37 6p Linux kernel.
"* cpusod's e* s), so weaneedn't do rebind work"for ccy.cam tu11i" id="L5" class="line* User  idcd2073351="L120.c#:} id="L4" class="lin20.c#>20s; id= Linux kernel.
"*ame7="L20sde EI class="line" nam1248="L1"2075351="L120er5/.c#p  id="L4" class=20er5>20sm1276 Linux kernel.
/* Slow isth of"a e* User  jduplic_te *ame7="L1220 Su>20s6&IGRstruc12720Su >20s7e EI<"> 37 6 ame7="L<<<<<<<<
 124s20>
<>20sdeEIOrss/a>20s37 6-- action="ajcodemaxncodess2081351="L120n class="c1281="L1"> 12420n c>20n eEIOrss/a>12820Su >20nTsppsp  id="L4" class"L1"> 1cla" id="L5" clERR_PTR 20ser>20n37 6p class="line" nam1248="L1"2083351="L120e get_&nodgeass= action=20e g>20n3&IGRATE_SYNC,Linux kernel.
/* tu11's e* User  jis protecte=Cby alloc_locc *ame7="L20nde EINVAL/.c#/GE3,6 124edih* Su ocoden loess/a> 37 6 ame7="L<<<<<<<< 1p"> 37 6e> 124edih* Su ta naloccsigned long acte" nalocc &no3,620nion="ajcodecurrChrisss,6131s i5stdivcy.cpasude &nodgease" naunloccsigned long acte" naunlocc &no3,6<>20n action="ajco Celse class="line" nam1248="L1"2089351="L120 h* Su cla" id=124sy>12920 h*>20n class="line"tion="ajs,620ax7 6p class="line" nam1248="L1"2091351="L120 =="ms_clea5eass= *actio20 ==>20a  action="ajc,6 37 6 ame7="L<<<<<<<< 124* Su#in20nam>20as= action="ajjjjjjjjjcla" id="L5" clnt>
sct unsigned long action="ajcode__us"> 124edih* Su ocosess/a>20ade EINVAL/.c#p  id="L/GE3,6 124edih* Su flagsess/a> 1p"> 37 6p  id="L"> 124edih* Su om12_rebindaden loess/a>124 >>129206.2>20aion="ajcodecurrChrisselse class="line" nam1248="L1"2097351="L120ng/.c#L = action="ajcode20ng/>20a356">131s i5stdivcy.ccccccccc"> 124edih* Su om12_rebindaden loess/a>20a action="ajco {"> 5  620a"ajcode&MPOLMsude &nodgeass)rcu_readaunloccsigned long actrcu_readaunlocce7="( " class="line" nam1248="L1"21m1351="L121m135 endeL5"/.c#L =~0ULp21m13>210 id="L4" clascla" id="L5" clatomic_sodsigned long actatomic_sode7="(Trss/,6 124edih* Su 24ecam &= action="24ecam &noej1 " class="line" nam1248="L1"21m1351="L121m=="ms_clea5eass= *actio21m==>210  action="ajc"L1"> 1cla" id="L5" clnew &= action="new &no" class="line" nam1248="L1"21m2351="L121m=axncod/.c#L  =0 || ( a21m=a>21037 6p {"> 5  6 124* Su#in21mam>2107="L2107="L< Linux kernel.
/* Slow isth of"a e* User  j. 124edih* Su __om12_equaness/a> 37 6 ame7="L<<<<<<<<2107eEIOrss/a> 1cla" id="L5" clfalseess/a>21m class="line"/GE3,6 124edih* Su o 5  6 124edih* Su o 5  6 1cla" id="L5" clfalseess/a>21sTsppsp  id="L/GE3,6 124edih* Su flagsess/a> 124edih* Su flagsess/a> 1cla" id="L5" clfalseess/a>211de EINVAL/.c#p  id="L/GE3"line" nam2e="L1no>
 _equaness/a>
 _equan &no3,6 124edih* Su w &= action="w &no.line" nam2e="L1nsea_ion="ajcertass= *actionnsea_ion="ajc &noej,6 124edih* Su w &= action="w &no.line" nam2e="L1nsea_ion="ajcertass= *actionnsea_ion="ajc &no)L class="line" nam1248="L1"21s5351="L121de_tss/a>211m1276="L1"> 1p"> 37 6p  id="L"L1"> 1cla" id="L5" clfalseess/a>21137 6 action="ajcoden longs321s7351="L121"L1"> 1356"
	or	offset i21"L1>2117e EINVAL/.c#switchE3,6 124edih* Su o 5  6 37 6 ame7="L<<<<<<<<211deEIOrss/a> 37 6 ame7="L<<<<<<<<211 class="line"tion="aj,Linux kernel.
/* Fall through *ame7="L 37 6 ame7="L<<<<<<<< 1!"line" nam2e="L1no>
 _equaness/a>
 _equan &no3,6 124edih* Su vONG/.c#L)L- 1p v &no.line" nam2e="L1 o>
 ertass= *action o>
 e7="ej,6 124edih* Su vONG/.c#L)L- 1p v &no.line" nam2e="L1 o>
 ertass= *action o>
 e7=" " class="line" nam1248="L1"2122351="L121spasude copy_from_userea21spa>2122eEIOrss/a> 37 6 ame7="L<<<<<<<<>212s= action="ajjjjjjjjj"L1"> 1cla" id="L5" claONG/.c#L)L- 1p a &no3="L1"> 124edih* Su vONG/.c#L)L- 1p v &no.line" nam2e="L1prLfe.red_n 5  6 124edih* Su vONG/.c#L)L- 1p v &no.line" nam2e="L1prLfe.red_n 5  6 37 6 ame7="L<<<<<<<<1320* 21 ac>212m1276="L1"> 1p"> 37 6e> 124edih* Su BUGertass= *actionBUGe7="( " class="line" nam1248="L1"2156351="L121">  0 1120n21"> >212ion="ajcodecurrChriss"L1"> 1cla" id="L5" clfalseess/a>2127e EINVAL/.c# {"> 5  613095L6" ame7=".code215sm>215s/a>< {"> 5  621237 6-- action="ajcodemaxncodess2131351="L121_ou_tss/a>21_o/a>21_POLMF Linux kernel.
"* Shared e* ory baccingastore User  jsupporti" id="L5" class="line* User  idcd2132351="L1214ssl.
21_37 6p Linux kernel.
"*" id="L5" class="line* User  idcd2133351="L121321_; id= Linux kernel.
"* Ree* ber User ies evcaswhen nobody has shared e* ory eappe=i" id="L5" class="line* User  idcd2134351="L121chmass)6 {212137="L< Linux kernel.
"* The User ies are kept in Red-Blacc tree ra>ked fromuthe in 5 i" id="L5" class="line* User  idcd2135351="L121eess/a>213m1276 Linux kernel.
"* They are protecte=Cby the sp3="L1locc spinlocc,swhichEshould bc hel=" id="L5" class="line* User  idcd21_6351="L121ess/a>213ion=" Linux kernel.
"* for any accet t  to the treei" id="L5" class="line* User  idcd2137351="L121213
"*ame7="L213deBITLLLLLLL213dlistsOsthe Linux kernel.eess/a>214o/a> 124  321pTsppss _ticjstruc2142= ac,621ps= ac<"> 37 6 ame7="L<<<<<<<<21pde EINVAL/.c#struc 124edih* Su 2oom &= action="2oom &no.line" nam2e="L1rb_n 5  6<>21pion="ajcodecuwhileE3,6 37 6 ame7="L<<<<<<<<12421	is>214356">131s i5stdivcy.cstruc214deBITLLLLLLL214 class="line"tion="aj/GE3,6 124edih* Su end &= action="en=* Co)if (action="ajcoden longs32151351="L121span class="com124  >12521spa>2151class="line"tion="ajp"> 37 6e> 124edih* Su nertass= *action  &no4glistess/a> 124edih* Su 2b_righm &= action="2b_righm &no" class="line" nam1248="L1"2151351="L121L = action="ajcodePTR_ER21L =>21sTsppsp  id="L4" classelsej/GE3,6 124edih* Su start 6215 &IGRATE_SYNCtion="ajp"> 37 6e> 124edih* Su nertass= *action  &no4glistess/a> 124edih* Su 2b_lefm &= action="2b_lefm &no" class="line" nam1248="L1"2153351="L121 er5/.c#L = action="ajco21 er>21ss= action="ajjjjjjjjjelse class="line" nam1248="L1"2154351="L121t   124 >>12923m.2>230ion=" Linux kernel.
"""""""""""""""""* Our periodic faults will srssle this probability and" id="L5" class="line* User  idcd23m7351="L123mg/.c#L = action="ajcode23mg/>230
"""""""""""""""""* gettingathe sajc result twice in a row, givcasthesc &id="L5" class="line* User  idcd23m8351="L123m =axncod/.c#L-#37;= act23m =>230s/a>230dlistsOsthe Linux kernel.231o/a>231POLMF Linux kernel.
urrChrisstion="aj*" id="L5" class="line* User  idcd2312351="L123a><>23137 6p Linux kernel.
urrChrisstion="aj* This quadricjsquishes small probabiliti=s, macing" id="L5" class="line* User  idcd2313351="L123ode_tss/a>231; id= Linux kernel.
"rrChrisstion="aj* itjlessslikely we act on nuxunlikely task=lL13="L1pstt" id="L5" class="line* User  idcd2314351="L123 action="ajcodeEINVALrss23 ac>2317="L< Linux kernel.
"rrChrisstion="aj* relation." id="L5" class="line* User  idcd2315351="L123de_tss/a>231m1276 Linux kernel.
"rrChrisstion="aj*ame7="L231ion="ajcodecurrChrisscla" id="L5" cls_ct_ni= &= action="s_ct_ni=* Coasude &pmass=,6actistt_ni=_xchg_s_ct &= action="istt_ni=_xchg_s_ct &no3,6 1356"
	or	offset i23"L1>231356">131s i5stdivcy.c/GE3cla" id="L5" cls_ct_ni= &= action="s_ct_ni=* Coa!su,6231 class="line" {"> 5  613223spa>232Tsppsp  id="L/GE3cla" id="L5" clccyni= &= action="ccyni=> 37 6 ame7="L<<<<<<<<232de EINVAL/.c#cla" id="L5" clom12_cond_pudsigned long actom12_cond_pud &no3,61320* 23 ac>23237 6  0 1120n23"> >232ion="ajcodecu"L1"> 1cla" id="L5" clrodsigned long actrod>232 5  613095L6" ame7=".code235sm>232deBITLLLLLLL232dlistst_ticjvoi=",623_o/a><<"> 37 6 ame7="L<<<<<<<<233  action="ajc,6"deletinga%/lx-l%/lx\n"me7="L<6a,6 124edih* Su start 6 124edih* Su end &= action="en=* Co)" class="line" nam1248="L1"2332351="L1234ssl.
2332 action="ajc,6 124edih* Su n= &= action="n= &noejTrss/,6 124edih* Su 2oom &= action="2oom &noL" class="line" nam1248="L1"2333351="L12332333 action="ajc,6 5  623337 62336listst_ticjvoi=",6233356">131s i5stdivcy.ction="ajn class="e neL5"eass=p id="L4end &= action="en=* Co6Mstruc233 acti<"> 37 6 ame7="L<<<<<<<<233"ajcode&MPOLMsude &nodgeass)n 5  6 124edih* Su start 6 124edih* Su end &= action="en=* Co glistess/a> 124  3234  action="ajc,6 124edih* Su den loess/a> 5  62347="L2344&IGRst_ticjstruc 1p"> 37 6tion="ajjjjjjjjjstruc<>2346id="<"> 37 6 ame7="L<<<<<<<<12423	is>2347e EINVAL/.c#struc2348id="L4" classtruc12523spa>235 id="L4" clascla" id="L5" cln &= action="n>235Tsppsp  id="L/GE3"line" nam2e="L1n &= action="n>235 &IGRATE_SYNCtion="aj"L1"> 1cla" id="L5" clNUa>ertass= *actionNUa> &no" class="line" nam1248="L1"2353351="L123 er5/.c#L = action="ajco23 er>2357="L12523t  >235de EINVAL/.c#cla" id="L5" clnewpeness/a> 5  6235m1276="L1"> 1/GE3cla" id="L5" clIS_ERR &= action="IS_ERR &no3line" nam2e="L1newpeness/a> 37 6 ame7="L<<<<<<<<<>235ion="ajcodecurrChrisscla" id="L5" clkjco_cache_fre  612523 6<>235356">131s i5stdivcy.c"L1"> 1cla" id="L5" clNUa>ertass= *actionNUa> &no" class="line" nam1248="L1"2358351="L123s/a> 5  6235"ajcode&MPOLMsude &nodgeass)newpeness/a> 124edih* Su flagsess/a>236  act class="line" nam1248="L1"2362351="L123"ajcodeMIGRATE_SYNCrss/a23"aj>2362eEIOrss/a> 1cla" id="L5" cln &= action="n> {"> 5  6236de EI class="line" nam1248="L1"2365351="L123"L1"> 1246y and en1* Su#23"L1>236m1276 Linux kernel.
/* Replacs a pen lo range.j*ame7="L<>236356">131s i5stdivcy.ccccccccccccccccccn class="e neL5"eass=p id="L4end &= action="en=* Co6Mstruc 37 6 ame7="L<<<<<<<< 124ighss= h* Su cla" 23"> >236"ajcode&MPOLMstruc237 id="L4" classtrucertass= *actionNUa> &no" class="line" nam1248="L1"2371351="L123Su cla" id="L5"124mp>12723Su >2371id="L4" classtrucertass= *actionNUa> &no" class="line" nam1248="L1"2372351="L123_wri>eeass= & action=23_wr>2372e EINVAL/.c#/n2377="L< eass=,(action=rostart 6 37 6 ame7="L<<<<<<<<2375e EINVAL/.c#cla" id="L5" clspinaloccsigned long actspinalocce7="(Trss/,6 124edih* Su loccsigned long actlocce7="L" class="line" nam1248="L1"2376351="L123 Su cla" id="L5"124ri>1223 Su>2376id="L4" clascla" id="L5" cln &= action="n>12723Su >237356">131s i5s Linux kernel.
/* Take cnrt of old User ies /S the sajc range.j*ame7="L
 124s23>
<>237deEIOrss/a> 124edih* Su start 6 37 6 ame7="L<<<<<<<<237 class="line"tion="ajstruc 124edih* Su n= &= action="n= &noL" class="line" nam1248="L1"2381351="L123n class="c1281="L1"> 12423n c>2381class="line"tion="aj/GE3,6 124edih* Su start 6 37 6 ame7="L<<<<<<<<12823Su >23nTsppsp  id="L4" classssssssss/GE3,6 124edih* Su end &= action="en=* Co =lL1glistess/a> 23ser>238 &IGRATE_SYNCtion="ajjjjjjjjjjjjjjjjj,6 124edih* Su start 6 1p"> 37 6} elsej<"> 37 6 ame7="L<<<<<<<<23nion="ajcodecurrChrissjjjjjjjj,Linux kernel.
/* Old User y Linuningawholt new range.j*ame7="L238356">131s i5stdivcy.ccccccccc/GE3,6 124edih* Su end &= action="en=* Co =gL1a,6 37 6 ame7="L<<<<<<<<<>238deEIOrss/a>12923 h*>238 class="line"tion="ajjjjjjjjjjjjjjjjjjjjjjjjjgotoa,6239x7 6p class="line" nam1248="L1"2391351="L123 =="ms_clea5eass= *actio23 ==>239Tsppsp  id="L4" classsssssssssssssssss,6 124edih* Su den loess/a> 124edih* Su 2efcam &= action="2efcame7="ej1 " class="line" nam1248="L1"2393351="L123nam1244="L1"> 124* Su#in23nam>239s= action="ajjjjjjjjjjjjjjjjjjjjjjjjj,6 124edih* Su end &= action="en=* Co6Mline" nam2e="L1om12_new &= action="om12_new &no " class="line" nam1248="L1"2394351="L123 =axncod/.c#L-8io  actio23 =a>239de EINVAL/.c#p  id="Ltion="ajjjjjjjjj,6 124edih* Su end &= action="en=* Co glistess/a> 1p"> 37 6jjjjjjjjjjjjjjjj,6ertass= *actionNUa> &no" class="line" nam1248="L1"2397351="L123ng/.c#L = action="ajcode23ng/>239356">131s i5stdivcy.ccccccccccccccccc,6ertass= *actionNUa> &no" class="line" nam1248="L1"2398351="L123e =axncod/.c#L-#37;= act23e =>239deEIOrss/a>239 class="line"tion="ajjjjjjjjj}jelse class="line" nam1248="L1"24m1351="L124m135 endeL5"/.c#L =~0ULp24m13>2401class="line"tion="ajjjjjjjjjjjjjjjjj,6 124edih* Su end &= action="en=* Co glistess/a>240Tsppsp  id="L4" class {"> 5  6240 &IGRATE_SYNCtion="aj/GE3"line" nam2e="L1nextess/a> 124* Su#in24mam>240s= action="ajjjjjjjjjjjjjjjjjbreak" class="line" nam1248="L1"24m4351="L124m=axncod/.c#L-8io  actio24m=a>240de EINVAL/.c#p  id="Lcla" id="L5" cln &= action="n> 1 {"> 5  6124 >>12924m.2>240ion="ajcodecu/GE3,6240356">131s i5stdivcy.c5"eass=p id="L4sp_insert 6 124edih* Su loccsigned long actlocce7="L" class="line" nam1248="L1"24m9351="L124mude endeL5"/.c#L =~0ULp24mud>240"ajcode&MPOLMsude &nodgeass)rodsigned long actrod>241POLMF > 124edih* Su err_oudsigned long acterr_oud="L<:"> 37 6 ame7="L<<<<<<<<<>2412on="ajcodecu/GE3,6 37 6 ame7="L<<<<<<<<241s= action="ajjjjjjjjjcla" id="L5" clom12_pudsigned long actom12_pud &no3,62414on="ajcodecu/GE3,6 1p"> 37 6cla" id="L5" clkjco_cache_fre  624137 6 action="ajcoden longs324s7351="L124"L1"> 1356"
	or	offset i24"L1>241356">131s i5s"L1"> 1cla" id="L5" clrodsigned long actrod>241 clas,6 37 6 ame7="L<<<<<<<< 124edih* Su loccsigned long actlocce7="L" class="line" nam1248="L1"2421351="L124span class="com135  >13224spa>242  action="ajc,61320* 24 ac>2425e EINVAL/.c#cla" id="L5" clom12_new &= action="om12_new &noasude &pmass=,6actkjco_cache_alloc 6  0 1120n24"> >242ion="ajcodecu/GE3"line" nam2e="L1om12_new &= action="om12_new &no "> 37 6 ame7="L<<<<<<<<242356">131s i5stdivcy.cgotoa,6242dlist {"> 5  6243x7 6p class="line" nam1248="L1"2431351="L1244"L3" class="line" namee244"L>243POLMF Linux kernel.
/**" id="L5" class="line* User  idcd2432351="L1244ssl.
24337 6p Linux kernel.
u* om12_sharedaden lo_init - initializt shartd User y for in 5  &id="L5" class="line* User  idcd2433351="L1243243; id= Linux kernel.
"* @sp: Usinter to in 5  shartd User y &id="L5" class="line* User  idcd2434351="L124chmass)6 {242437="L< Linux kernel.
"* @ Use:ajstruc243ion=" Linux kernel.
"* Instaln non-NUa> @ Use /S in 5 =#39;s shartd User y rb-tre ." id="L5" class="line* User  idcd2437351="L124243
"* On nntro, the ccy.cam task has a rLfe.ence on n non-NUa> @ Use." id="L5" class="line* User  idcd2438351="L124c"ess/a>243s/a>243dlistsOsthe Linux kernel.eess/a>244o/a> 124  3244  actvoi=",6 37 6 ame7="L<<<<<<<<24437 6p<"> 37 6 ame7="L<<<<<<<<2443on="ajcodecu/n244de EI class="line" nam1248="L1"2445351="L124/.c#L  id="L4" class="li24/.c>2445e EINVAL/.c#cla" id="L5" clsp 6 124edih* Su 2oom &= action="2oom &noasude &pmass=,6actRB_ROOT &= action="RB_ROOT> 1p"> 37 6cLinux kernel.
/* namt  tre  ==1defaultse* User   *ame7="L<>2446id="L4" clascla" id="L5" clspinalocc_init 6 124edih* Su loccsigned long actlocce7="L" class="line" nam1248="L1"2447351="L124	islimpliesonha12412424	is>2447e EI class="line" nam1248="L1"2448351="L124L =6action="ajcodecheck_24L =>2448id="L4" clas/GE3,6 37 6 ame7="L<<<<<<<<244 class="line"tion="ajstruc12524spa>2451class="line"tion="ajstruc245Tsppsp  id="L4" classde &pmass=,6actNODEMASK_SCRATCHertass= *actionNODEMASK_SCRATCH &no3line" nam2e="L1scratch 6245 &IGR class="line" nam1248="L1"2453351="L124 er5/.c#L = action="ajco24 er>245s= action="ajjjjjjjjj/GE3"line" nam2e="L1scratch 6 5  6245m1276="L1"> 1p"> 37 6cLinux kernel.
/* contextualizt the tmpfs mouam isintse* User   *ame7="L<>245ion="ajcodecurrChrisscla" id="L5" clnew &= action="new &no4su,6 124edih* Su m 5  6 124edih* Su flagsess/a> 124edih* Su w &= action="w &no.line" nam2e="L1user_ion="ajc &= action="user_ion="ajce7="L" class="line" nam1248="L1"2457351="L124 612524 6<>245356">131s i5stdivcy.c/GE3cla" id="L5" clIS_ERR &= action="IS_ERR &no3line" nam2e="L1new &= action="new &no)L class="line" nam1248="L1"2458351="L124s/a>
/* no valid ion="ajc intersection *ame7="L24537 6-- action="ajcodemaxncodess2461351="L1245ss/a>2461class="line"tion="aj,6246Tsppsp  id="L4" classde &pmass=,6actrodsigned long actrod> 124edih* Su w &= action="w &no.line" nam2e="L1user_ion="ajc &= action="user_ion="ajce7="ej5"eass=p id="L4scratch 6246 &IGRATE_SYNCtion="aj"eass=,(action=taskaunloccsigned long acttaskaunlocc &no3line" nam2e="L1ccy.camsigned long actccy.came7="L" class="line" nam1248="L1"2463351="L124ile 5ss/a>246s= action="ajjjjjjjjj/GE3de &pmass=,6actrodsigned long actrod> 1246y and en1* Su#24"L1>24637 6
/* Create pseudo-vma that contains just the pser   *ame7="L<>246356">131s i5stdivcy.c"eass=,(action=ocosodsigned long actocosode7="(Trss/,6 12423n clZEend &= actio423n clZEOOT> 1isscLinux kernel.
he psercovint On irtstt er   *ame7="L 124ighss= h* Su cla4 23">46244 class="line"tion=asu,6
addU is r   *ame7="L14723Su47241POLMF > 124edih* jcoput_new &= action="put_new  Co:"> 37 6 ame7="L<<<<<<<<eeass= & actio4=23_w47246 &IGRATE_SYNCtion="aj"eass=,(acti clom12_pudsigned long actom12_pud &no3,6
dropt - init is r   *ame7="L Co:"> 37 6 ame7="L<<<<<<<<2375etoa,6 37 6 ame7="L<<<<<<<<4223 S47245ion="ajcodecurrChrisscla" id="L5" clom12_pudsigned long actom12_pud &no3,6
dropte="oinnelnuniis rctisb
u* or   *ame7="L14723Su4>237356">131s ist {"> 5  6
 124s23>
4>237deist {"> 5  6 14423n 4>2381cecu/n14823Su4>23nTsppsp  id="L4" classsssss"ajstruc 37 6 ame7="L<<<<<<<< 37 6 ame7="L<<<<<<<<ertass= *actionNUa> &no" class="line" nam1248="L4"23n5351="4123h* Su cla" id="L124ig>4223h*4>238m1276="L1""ejn class="e neL5"eass=p id="z 5  6<4>238356">131s toa,6&qu12_son=sharedadeninga% szingauinga&#dinga&#dinga%/lx\n"me7=" 6 action="ajcoden longs34>238deEIOrss/a> 124edih* n="pgoffuc< &= action="pgoffvmae7 6-- action="ajcodemaxncodes"2459351="L123 h* Su cla" id=124sy>14923 h4>238 class="line"tion="neL5"eass=p id="z 5  6 124edih* Su m 5  6 124edih* Su flagsess/a><: -17 6-- action="ajcodemaxncodes"2371351="4123 =="ms_clea5eass= *act4o23 =4>239Tsppsp  id="L4" clano3line" nam2e="coom12 &= action="om12  ?=no3line" nam2e="m2es_addrm12 &= actio"m2es_addrpud &no3,6 124edih* vuc< &= actionvmae7=".line" nam2e="m2esm12 &= actio"m2esvmae7[0]<: asude &pmass=,6acMA_NO_ionNUa>ertass= *actioMA_NO_ionNvmae7="L" class="line" nam1248="L1"2392351="4123 =axncod/.c#L  =0 || (4a23 =49245 &IGR class="line" nam1248="L1"2393351="4123nam1244="L1"> 124* Su#4n23na492423on="ajcodecu/o4s,6 37 6 ame7="L<<<<<<<<239de EINVAL/.c#p  ido4sline" nam2e="L1new &= action="new &noasude &pmass=,6"L1sp_alloc 6 124edih* n="pgoffuc< &= action="pgoffvmae7eno3,6 124edih* n="pgoffuc< &= action="pgoffvmae +"neL5"eass=p id="z 5  6 1p"> 3"aj/GE3"line" nam2e="Lonew &= action="new &no) class="line" nam1248="L1"2396351="41236.20.4124 >>149236.4>239ion="ajcodecurrChrissjjjjji5s"L1"asu-,6131s ist {"> 5  6 124edih* n="pgoffuc< &= action="pgoffvmae7eno3,6 124edih* n="pgoffuc< &= action="pgoffvmae+neL5"eass=p id="z 5  6239 class="liecu/o4s,62401class="line"tion=asude &pmass=,6"L1sp_fre  6240Tsppsp  idi5s"L1"> 1cla" id="L5"errm12 &= actioerrnew &no" class="line" nam1248="L5c24m2351="5124m=axncod/.c#L  =0 || (5a24m=5023437 6p {"> 5  6 124* Su#5n24ma502377="L 15{"> 5 "ajcoom12_sharedaden lo_io:"> 3/a> 3/a>240356">135s i5s5divcy.c5"eass=action=sp_n 5  6pan clarb_n 5  &no4sline" nam2e="L1nextess/a>239 class=5MPOLM50ajcodemaxncodes"2381351="4123n c53241x7 6p c5ass="510s,6241POLMF >5124ed51 clano3line" nam2e="c"L5"ernam1248="L1"2371351="L123s3<5pasude k/.5#L  = act24a><>2412on="aj5odecu51 15"> 37 6cla" id="L5" clkjco_cache_fre "n>24137 6 ac5ion="51Chrisscla" id="L5" clnew &= action=e next> 124edih* Su n= &= action="n= &noL" class="line" nam1248="L1"2381351="L123n c5> 1356"
	o5	offset i24"L1>241356">135s i5s51ivcy.c"eass=,(action=ocosodsigned lo#L)L- 1p sp_delett &no3,6 5  6241 clas,65actio51de &nodgeass)rodsigned long ed long actspinaunlocce7="(Trss/,6242 id="L45 clas5la" idpan class="c2359351="L123NCV5 class="co5135  >13224spa>242  actio5="ajc52ne" nam1248="L1"2362351="L123"aj5ude copy_f5om_userea24spa>2422 actio5="ajc56>2423on="aj5odecu5GE3"lis=,(actrodsigned long bo="om12 7="L" clasbo="e &norodsigned long _,6 _,61320* 24 ac>2425e EINV5L/.c#5la" ids=,(act"ajcoom12_sharedaden_n claspinalocc_inite_,6 >242ion="aj5odecu52me7="L<<<<<<<<242356">135s i5s522428id="L45 clas52  action="ajcode24s9351="L124sud5 er5/.c#L 5id="L4" c24sud>242dlist {5> 5  524s,6243x7 6p c5ass="53on=asude &pmass=,6"L1sp_fre  6243POLMF L5nux k53ne" nam1248="L1"2362351="L123"aj5.
<5a pageden244ss>24337 6p L5nux k53E3,6&qu12_son=sharedadeniEnablr   autom,(act"L"  balancr  . ction="ajcode<<<<<<<<_add5eass5hmass)6 {242437="L< L5nux k53 id="Ltion="ajgotoa,6&qu12_son=sharedadeniConfigure with numa_balancr  = or sysctlction="ajcode nam1248="L1"2447351="L124	is5/a>243m1276 L5nux k53> 37 6cla" id="L5" clkjco_cache_fre o3linumabalancr  _s=,( sp_delett &no3,63linumabalancr  _s=,( "ajconextess/a>243ion=" L5nux k53Chrisscla" idpan class="c2359351="L123NCV5sude er5/.5#L = acti24243243s/a>243dlistsO5the L5nux kes=,(action=sharedaden lo_r_n claspinalocc_inite_,6eess/a><5pasude up24p_w>244o/a> 1245 3244  actvo5=",6<54 clano3line" ion=rodsigned long actrod>2443on="aj5odecu54jjjjjjcla" id="L5" cl"ajcoput_new &= aacterr_oud="L<" cl"line" nam1248="L1"2428351="L1245sm5wap i5sicy5c#L3" id=244s/>244de EI c5ass="54 id="Ltion="anew &= actionumabalancr  _   *rilasp_n 5  &noej5"numabalancr  _   *rilan="ajcorb_nextess/a><>2446id="L45 clas54E3"line" nam2e="L1om12_new &= ltrcmaspe7=="(Trss/,6&qu12_son=sharedadenienablaction="ajcode n"L<<<<<<<<12424	is>2447e EI c5ass="54ivcy.c"eass=,(action=ocosodsigned lo#3linumabalancr  _s=,( sp_delett &no3,63linumabalancr  _s=,( "ajconextess/a>2448id="L45 clas54sude E,6&qu12_son=sharedadenidisablaction="ajcode n"L<<<<<<<<245Tsppsp 5id="L5" classde &pmass=,6actNODEMASK_SCRATCactrod>245 &IGR c5ass="55E3,6245s= acti5n="aj55"ajcofre _scratch 6 5 56245m1276="51"> 15"> 37 6cLinux kernel.&qu12_son=sharedadeniUnabla"L<>245ion="aj5odecu55coden longs312524 6<>245356">135s i5s5divcy.c/GE3cla"L5" clrodsigned long actrod>245deEIOrs5/a>24537 6-- 5ction55"ajcoalloc_new &=__63lupspinalocc_inite_,63lup"ajcosing">&qu12_son=sharedadeninuma_balancr  =ction="ajcodenoom12_sharedaden63lupinumabalancr  sp_delett &no3,63lupinumabalancr  "ajc nam1248="L1"2447351="L124	is5a>2461class=5line"5ion="a#e" nam1248="L1"24m1351="L124m135on) action5"ajcode=v24ed >246Tsppsp 5id="L5" class=,(actrodsigned long ined >24_delett &no3,ined >vcy.c"ajcoom12_sharedaden_n claspinalocc_inite_,6246 &IGRAT5_SYNC56me7="L<<<<<<<<246s= acti5n="aj5jjjjjjpan class="32459351="L123th 5ck_lru_pan5gs3246de EINV5L/.c#5  id="#ende="/span>
/* Create pseudo-vmONFIG_"L" cBALANCINGction="ajcoden longs32387351="L123> 1246y an5 en1* Su#24"L1>24637 6
"* Instaln non-e7="ssumes fsUser" clas_DSction="ajcoden longs32387351="L123>><>246356">135s i5s5divcy."ajcoom12_sharedaden_n claspinalocc_inite_,646244 class=5line"56de &nodgeass)rodsigned long "eass=p _aspinalocc_initeneass=p _ationoom12_sharedadenme7="leave_io"m2esvmae7[0]<: asme7="leave_io"m2ne" nam1248="L1"24s8351="L124ude5a>&qu12_son=sharedadeninuma_"6a,6<5u 1246y an54" clas4=23er4>2375etoa,65actio57> 37 6jjjjjjjjjjjjjjjj,64223 S47245ion="aj5odecu57coden longs3135s ist57< *actionsn_cachee7="6a,6&qu12_son=sharedadenieplacs &o4s,6<5uspasude l5L1"> 124s23>
4>237deist {5> 5  57sude EEEEEEEEEccccccccbreak" class="lnnnnneass=,(action=vm_area_struc< pan clasp_n 5  &noej5"eass=p id=")n longs3<5u 14423n 4>2381cecu/n5s"eas58ne" nam1248="L1"2371351="4123Su 5la" id="L55124 p>14823Su4>23nTsppsp 5id="L58ATOMIC_INI""ajco1)n longs3<5xncodess/a5238de EINV5L/o6M58 id="Lcla" id="L5"ionnnnnnnnn2esm12 &= act clam 5   : -17 6-- action="ctkjco_cache_alloMPOL_PREFERRct124asF_SHARED &MPOL_PREFERRct2e="L longs3<5x 1246y an5L124ig>4223h*4>238m1276="51""ej58> 37 6jjjjjjjjjjjjjjjj,6<: -17 6-- action="ctkjco_cache_alloMPOL_F_MOF124asF_SHARED &MPOL_F_MOFion="|tkjco_cache_alloMPOL_F_MORON124asF_SHARED &MPOL_F_MORON2e="L longs3<5xla" id="L5="L4" c4a23su4824137 6 ac5ion="58Chrissjjjjji5s"L1"asu-,6135s toa58ivcy.c"eass=,(action=}nam1248="L1"2447351="L124	is5aspasude l5L5"/.c#4 23a>4>238deEIOrs5/a> 5  614923 h4>238 class=5line"58ajcodemaxncodes"2381351="4123n c5od/.c#p  i5="L4" c4a23ax492401class=5line"5ion="no3line" /span>
"* Instaln non-e7on="ajcoden longs32387351="L123>239Tsppsp 5id="L59nel.
/**" id="L5" cl,(action=* Set me7="leavr   ngaufor systemme7=". Ie7="leavr   is onls="line* User  idcd2434351="L124 15"> 3"aj/GE3"lirodsigned long "eass_clea2es_addrpud &no3,6 &no" class=_MEMORY="aj)"L<<<<<<<<135s ist59ivcy.c"eass=,(action="eass=p id="z 5  6239 class=5liecu59on=asu,6
"* Instaln non-e7=Presjrvei7="Llarges sectia*ion="ajcoden longs32387351="L123>2401class=6line"6ion=asude &pmass=,6"L1ajcoom12_new &= larges rb_nexte7="(Trslarges ="lin<Lonew &= actiototalasup p_1p plpud &no3,totalasup pion=)"L<<<<<<<<240Tsppsp 6idi5s60 classsssss"ajstruc 5  60on="aj"eass=,(acti cl"eass=,(5  6 160> 37 6cLinux kernel.
/* contextualizt tIe7="leavei7=is ecti?a*ion="ajcoden longs32387351="L123>>149236.4>239ion="aj6odecu60Chrissjjjjji5s"L1"asuajcoonextess/a>PAGE_SHIF"ion=)"cajc= (16"<L<Lo20 nam1248="L5"24m1351="5124m136c#L = acti6n="ajcode24mg/>240356">136s i5s60ivcy.c"eass=,(action="eass=,(5  6 5  6239 class=6MPOLM60ajcodemaxncodes"2381351="4123n c63241x7 6p c6ass="61on="no3line" /span>
"* Instaln non-e7 Ase too sm 5 ,." id7="Llarges s*ion="ajcoden longs32387351="L123>241POLMF >6124ed61 clano3line" ajcoom12_new &= unlikel jcoden lo &no4sunlikel "ajconextess/a> 16"> 37 6cla" id="L5" clkjco_cache_fre printtlocce7="L" clasprintt"ajcosing">&qu12_son=sharedadeninuma_"6a,6<< cla: me7="leavr   failed action="ajcode nam1248="L1"2447351="L124	is6odeEINVALr6s/a>24137 6 ac6ion="61coden longs3 1356"
	o6	offset i24"L1>241356">136s i5s61241deBITLL6LLLL<61/a>241 clas,66actio61ajcodemaxncodes"2381351="4123n c61320* 24 ac>2425e EINV6L/.c#62="ajcode=vlags3<2466351="L124lud60 1120n24"> >242ion="aj6odecu62nel.
"* Instaln non-e7on="ajcoden longs32387351="L123>242356">136s i5s62
"* @ Use:ajstruc* Par7="anduformae7="L2428id="L46 clas62  act/span>
"* @ Use:ajstruc*ion="ajcoden longs32387351="L123>242dlist {6> 5  62ajcodemaxncodes"2381351="4123n c6tss/a>243x7 6p c6ass="63"line" nam12"*ame7="L243POLMF L6nux k63nel.
/**" id="L5" cl,* ction=localction=7is impleL5" ed me7="n 5 y by MPOL_PREFERRct with MPOL_F_LOCAL - acs="line* User  idcd2441351="L124p_w6.
<6a pageden244ss>24337 6p L6nux k63nel.
u* om12_sharedad*ion="ajcoden longs32387351="L123>243; id= L6nux k63E3"lis=,(actcons scharcotcons snextess/a>_add5eass6hmass)6 {242437="L< L6nux k63 id="L<<<<<<<<243m1276 L6nux k63> 37 6cla" id[nextess/a>&qu12_son=sharedadenid  *amestion="ajcoden longs3<6/ 1243ion=" L6nux k63Chrisscla" id[nextess/a>&qu12_son=sharedadenipron-Nstion="ajcoden longs3<6/ 1356"
	o6#L = acti24243&qu12_son=sharedadenibindstion="ajcoden longs3<6/ncod/.c#L6e task_un24c"e>243s/a>&qu12_son=sharedadenime7="leavestion="ajcoden longs3<6/endeL5"/.65/.c#L  i24s/a>243dlistsO6the L639hrisscla" id[nextess/a>&qu12_son=sharedadenilocalction="ajcoden longs3<6i>eess/a><6pasude up24p_w>244o/a> 1246 3244  actvo6=",6<64ne" nam1248="L1"2362351="L123"aj6sude er5/.6#L =- act2424437 6p<"6 37 664ne" nam1248="L1"2393351="4123nam6i2443on="aj6odecu64jjjjj#ifdef)rodsigned long CONFIG_TMPFS124asF_SHARED &CONFIG_TMPFSe" nam1248="L1"2393351="4123nam6i_add5eass6c#L3" id=244s/>244de EI c6ass="64EEEEEEEcccccccc/GE3"line" 7/*7on="ajcoden longs32387351="L123>
/**" id="L5" cl,* 351=_par7=<>2446id="L46 clas64nel.
"* Instaln non-,* @on=: "on=sha"he psersha"="L12424	is>2447e EI c6ass="64
"* @ Use:ajstruc* @351=: "pome7=" L
"* @ Use:ajstruc*="line* User  idcd2441351="L124p_w6pendeL5"/.6lagspps=|24244 class=6line"6ion="a/span>
"* @ Use:ajstruc* Formae7ofainput:="line* User  idcd2441351="L124p_w6 class="co6124  >12524spa>2451class=6line"65"line" nam12"*ame7="L 1246odePTR_ER24L =>245Tsppsp 6id="L65nel.
/**" id="L5" cl,*="line* User  idcd2441351="L124p_w6 ude er5/.6tion="ajc24 IS>245 &IGR c6ass="65nel.
u* om12_sharedad* O="Luccess,a"L5" cs10n=me7="1="line* User  idcd2441351="L124p_w6 
"* @sp: Usinter *ion="ajcoden longs32387351="L123>12524t  >245de EINV6L/.c#6  id="ijcoom12_son=sharedaden par7=245m1276="61"> 16"> 37 L<<<<<<<<<>245ion="aj6odecu65Chrisscla" idaction=ocoden loess/a>ertass= *actionNUa> &no" class="line" nam1248="L4"23n5351="4123h* 6a>12524 6<>245356">136s i5s6divcy.c/GE3cla"eass=p ishorn=ocoden loess/a><: -17 6-24537 6-- 6ction65de &nodgeass)rodsigned long "eass=p _aspinalocc_initeneass=p _ationoom12_sharedadenio"m2esvmae7[0]<: asude &pmasnam1248="L4"23n5351="4123h* 6a>2461class=6line"66on="no3line" charcosp 6ertass= *ac&qu12_son=shareder y:der y"ajcode nam1248="L1"2447351="L124	is6on) action6"ajcode=v24ed >246Tsppsp 6id="L661n="no3line" charcosp 6<: -17 6-- action="ctkjco_cache_allo&qu12_son=shareder y=der y"ajcode nam1248="L1"2447351="L124	is6oude er5/.6SYNCrss/a24"aj>246 &IGRAT6_SYNC66E3,6 1246y an6 en1* Su#24"L1>24637 6 37 6cLinux kernel.
/* contextualizt t="l-7="minate 12624lud>246ion="aj6odecu66Chrissjjjjji5s"L1"asuosp 6&qu12_son=shareder y\0der y"ajcodenam1248="L1"2447351="L124	is65><>246356">136s i5s66ivcy.c"eass=,(action=e="Lom12_new &= io"mlist par7=esvmae7[0]<: asude list_par7=="jconextess/a>46244 class=6line"66on=asu,6<: -17 6-- action= ode_sarct5"24m4351="5m2351=6a 1246y an64" clas4=23er4>2375etoa,66actio67> 37 6jjjjjjjjjjjjjjjosp 6<: -17 6-- action=++i==ring">&qu12_son=shareder y\0der y"ajcoden(acti clospan>
/* contextualizt t7="minate 4223 S47245ion="aj6odecu67coden longs3136s ist67 124s23>
4>237deist {6> 5  67sude EEEEEEEEEccccccce="L1om12_new &= ltrcmaspe7=="(Trss/,6 14423n 4>2381cecu/n6s"eas68on="no3line" nam2e="cpan class="32459351="L123th 6la" id="L56124 p>14823Su4>23nTsppsp 6id="L68 37 6jjjjjjjswitchconew &= actio clam 5   : -17 6-- action=n"L<<<<<<<<136s toa68ivcy.c"eass=,(action=" nam12"*ame7="L4>238deEIOrs6/a>
"* @ Use:ajstruccccccccccccccccc tIesist 7="a ude list7ofaonesectiaonls="line* User  idcd2434351="L12414923 h4>238 class=6line"68on="a/span>
"* @ Use:ajstruccccccccccccccccc ion="ajcoden longs32387351="L123>239Tsppsp 6id="L69 classsssss"ajstruc 16"> 3"aj/GE3"line" nam22222222222222222"ajcoput_new &= aacterr_oud="L<" cl"line" nam1248="L1"2428351="L1245sm6.4>149236.4>239ion="aj6odecu6rChrissjjjjji5s"L1"asupan class="32459351="L123th 6c#L = acti6n="ajco4e23ng49237356">136s ist69ivcy.c"eass=,(action=breaknam1248="L1"2428351="L1245sm6.spasude l6#37;= a4t23e 492408id="L46 clas6la" id="L5"errcasetkjco_cache_alloMPOL_INTERLEAVE124asF_SHARED &MPOL_INTERLEAVE="liL<<<<<<<<239 class=6liecu69on=asu,6
"* Instaln non-e7on="ajcoden longs32387351="L123>2401class=7line"70"line" nam12"*ame7="Lsectis with 873orynajcno ude lists=="ajcoden longs32387351="L123>239Tsppsp 7idi5s70nel.
/**" id="L5" cl,(action=cccccccc*ion="ajcoden longs32387351="L123> 5  70on="aj"eass=,(acti cle="Lonew &= action6 170> 37 6cLinux casetkjco_cache_alloMPOL_LOCAL124asF_SHARED &MPOL_LOCAL="liL<<<<<<<<>149236.4>239ion="aj7odecu70Chrissjjjjji5s"L1"asuospan>
"* Instaln non-e7on="ajcoden longs32387351="L123>137s i5s70
"* @ Use:ajstruccccccccccccccccc* Donder yt Useow"a ude list;  351=_new() checks - actio="ajcoden longs32387351="L123>239 class=7MPOLM70on=asu,6241POLMF >7124ed71 clano3line" nam2e="com12_new &=  clam 5   : -17 6-- action="ctkjco_cache_alloMPOL_PREFERRct124asF_SHARED &MPOL_PREFERRct2e="nam1248="L1"2428351="L1245sm7ocod/.c#L 7#L  = act24a><>2412on="aj7odecu71on="aj"eass=,(acti clbreaknam1248="L1"2428351="L1245sm7tss/a>241s= acti7n="aj7jjjjjjjcla" idcasetkjco_cache_alloMPOL_DEFAULT124asF_SHARED &MPOL_DEFAULT="liL<<<<<<<<2414on="aj7odecu71 id="Lcla" id="L5"ionospan>
"* Instaln non-e7on="ajcoden longs32387351="L123>241m1276="71"> 171="ajc/span>
/**" id="L5" cl,cccccccccccccccc* Iesist 7="a efaul ude lists=="ajcoden longs32387351="L123>24137 6 ac7ion="71nel.
"* Instaln non-,cccccccccccccccc ion="ajcoden longs32387351="L123> 1356"
	o7	offset i24"L1>241356">137s i5s71ivcy.c"eass=,(action=e="Lonew &= action6241 clas,67actio71on=asu,6242 id="L47 clas720jjjjjcla" idcasetkjco_cache_alloMPOL_BINt124asF_SHARED &MPOL_BINt="liL<<<<<<<<2422 actio7="ajc72nel.
u* om12_sharedad(action=cccccccc* Iesist 7="a ude lists=="ajcoden longs32387351="L123>>2423on="aj7odecu72nel.
"* @sp: Usinter (action=cccccccc ion="ajcoden longs32387351="L123>242de EINV7L/.c#72 id="Lcla" id="L5"ione="Lonew &= action61320* 24 ac>2425e EINV7L/.c#72> 3"aj/GE3"line" nam222222222"ajcoput_new &= aacterr_oud="L<" cl"line" nam1248="L1"2428351="L1245sm7120n24"> >242ion="aj7odecu72Chrisscla" idpan class="c2359351="L123NCV7  1356"
	o7n="ajcode24d=">242356">137s i5s72<: -17 6-242dlist {7> 5  724s,6<: -17 6-- action= "L<<<<<<<<243x7 6p c7ass="73on=asude &pmass=,6"L1sspan>
"* Instaln non-e7on="ajcoden longs32387351="L123>243POLMF L7nux k73nel.
/**" id="L5" cl,(action=cccccccc* C a rLfly, wiaonls supporn=two mutu 5 y exclusiv=="line* User  idcd2441351="L124p_w7.
<7a pageden244ss>24337 6p L7nux k73nel.
u* om12_sharedad(action=cccccccc* 243; id= L7nux k73nel.
"* @sp: Usinter (action=cccccccc ion="ajcoden longs32387351="L123>_add5eass7hmass)6 {242437="L< L7nux k73 id="Ltion="ajgotoa,6e="L1om12_new &= ltrcmaspe7=="(Trss/,6<: -17 6-- action=,=ring">&qu12_son=sharedadenis=,(acction="ajcode noden longs32387351="L123>Im2e="L137 down_wri24ees>243m1276 L7nux k73> 37 6cla" id="L5" clEEEEEEEEom12_new &=  cla_sude flags><: -17 6-243ion=" L7nux k73Chrissjjjjji5s"L1"asume7="e="L1om12_new &= ltrcmaspe7=="(Trss/,6<: -17 6-- action=,=ring">&qu12_son=sharedadenirel,(avaction="ajcode nam1248="L1"2428351="L1245sm7/ 1356"
	o7#L = acti24243<: -17 6-243s/a>243dlistsO7the L73on="ajjjjjjjjj}jelse class="l"ajcoput_new &= aacterr_oud="L<" cl"line" nam1248="L1"2428351="L1245sm7i>eess/a><7pasude up24p_w>244o/a> 1247 3244  actvo7=",6<74ne" nam1248="L1"2362351="L123"aj7sude er5/.7#L =- act2424437 6p<"7 37 674E3,6ertass= *ac351=_newflags><: -17 6-<51=_new"ajconextess/a><: -17 6-244de EI c7ass="74 id="Ltion="ajgotoa,6"ajcoput_new &= aacterr_oud="L<" cl"line" nam1248="L1"2428351="L1245sm7iIm2e="L137class="li24/.c>2445e EINV7L/.c#74="ajcode=vlags3<2466351="L124lud7pasude m"l7_ou_/.c#p24a><>2446id="L47 clas74E3"line" nam2sspan>
"* Instaln non-e7on="ajcoden longs32387351="L123>12424	is>2447e EI c7ass="74
"* @ Use:ajstruccccccccc* Saveiectis for <51=_to
"* @ Use:ajstruccccccccc* for /proc/fouLfs, /proc/pid/fouLfs"andu/proc/pid/fouLfinfos="line* User  idcd2441351="L124p_w7pendeL5"/.7lagspps=|24244 class=7line"7ion="a/span>
"* @ Use:ajstruccccccccc*ion="ajcoden longs32387351="L123> 1247odePTR_ER24L =>245Tsppsp 7id="L7" classde &pmass=,6actNODEMASK_SCRATCn="new &noasude &pmass=,6-&ajcNODEMASK_SCRATCt124asF_SHARED &vion=1="Lend &= ac"o"m2esvmae7[0]<: asude &pmas"ctkjco_cache_allon245 &IGR c7ass="75E3,6245s= acti7n="aj75jjjjjjjjjjjjjjbreak" NODEMASK_SCRATCn="new &noasude &pmass=,6-&ajcNODEMASK_SCRATCt124asF_SHARED &vion=1="Lend &= acpron-Nacs 6245m1276="71"> 17"> 37 6cLinux kernel.<>245ion="aj7odecu75coden longs312524 6<>245356">137s i5s7divcy.c/GE3classpan>
"* Instaln non-e7on="ajcoden longs32387351="L123>24537 6-- 7ction75on="a/span>
"* @ Use:ajstruccccccccc*d7="L="L246Tsppsp 7id="L76246 &IGRAT7_SYNC76ne" nam1248="L1"2393351="4123nam75ss/a>246s= acti7n="aj76jjjjjjcla" idnextess/a>24637 6 37 put_new &= aacterr_oud="L<" cl"line" L<<<<<<<<
"* Instaln non-e7 Restora on=sha"for "lior 137s i5s76ivcy.c"eass=,e="Lnew &= action6&qu12_son=shareder y:der y"ajcodenam1248="L1"2447351="L124	is7546244 class=7line"764s,6<: -17 6-- action= am1248="L1"2447351="L124	is7a>&qu12_son=shareder y=der y"ajcodenam1248="L1"2447351="L124	is7la" id="L57124mp>14723Su47241POLMF >7124ed77 clano3line" ajco1om12_new &= errnew &no" class="line"  am1248="L1"2447351="L124	is7aude er5/.7p actio4=23_w47246 &IGRAT7_SYNC77on="aj"eass=,(acti closp 62375etoa,67actio77> 37 #endajcsspan>
"* Instaln non-e7 CONFIG_TMPFSa*ion="ajcoden longs32387351="L123>4223 S47245ion="aj7odecu77coden longs3137s ist77
"* @ Use:ajstru/*7on="ajcoden longs32387351="L123> 124s23>
4>237deist {7> 5  77  act/span>
"* @ Use:ajstruc* <51=_to
"* @ Use:ajstruc* @bufn-N:  L 14423n 4>2381cecu/n7s"eas78"line" nam12"*ame7="L
/**" id="L5" cl,* @p1=: "pome7=" L
u* om12_sharedad*on="ajcoden longs32387351="L123>238de EINV7L/o6M78nel.
"* @ Use:ajstruc7 Re5" cs17="Lnumb=" ofasharac7="sci="bufn-N (ajcposi(ava)="line* User  idcd2441351="L124p_w7x 1246y an7L124ig>4223h*4>238m1276="71""ej78="ajc/span>
/**" id="L5" cl,* or an>"lior (nega(ava)="line* User  idcd2441351="L124p_w7xla" id="L7="L4" c4a23su4824137 6 ac7ion="78nel.
"* Instaln non-,*ion="ajcoden longs32387351="L123>137s toa78ivcy.ijcoom12_son=sharedaden to<: -17 6-<51=_to<: -17 6-bufn-Nonn=n=ijcoom12_son=sharedaaxleaflags><: -17 6-4>238deEIOrs7/a>14923 h4>238 class=7line"784s,6<: -17 6-bufn-Nonn=nam1248="L1"2447351="L124	is7od/.c#p  i7="L4" c4a23ax492401class=7line"79on=asude &pmaijcoom12_son=sharedtm 5   : -17 6--lonn=nam1248="L1"2447351="L124	is7oa" id="L57s= *act4o23 =4>239Tsppsp 7id="L79sude flags><: -17 6-- action="ctkjco_cache_alloactm 5   : -17 6--penne"  ?tkjco_cache_alloactm 5   : -17 6--penne" -&ajcNODEMASK_SCRATCsude flags><: -17 6-- action=":" nam1248="L1"2373351="L123.c#7nncodess/a7io  act4o23 =4>239de EINV7L/.c#79ne" nam1248="L1"2445351="L124/.c7n 1246y an7VAL/.c#4 23/a4>239m1276="71"> 17"> 3"aj/GE3"lirspan>
"* Instaln non-e7on="ajcoden longs32387351="L123>>149236.4>239ion="aj7odecu79nel.
"* Instaln non-,cccccccc* Sanity check: "room for d="zes s act, - ac"andusomeiectison="ajcoden longs32387351="L123>137s ist79
"* @ Use:ajstruccccccccc*ion="ajcoden longs32387351="L123><: -17 6-<: -17 6-actlea"ajconing">&qu12_son=sharedadenime7="leavestion="ajcode) +onew &= actioactleaflags><: -17 6-actlea"ajconing">&qu12_son=sharedadenirel,(avaction="ajcode  +o16 nam1248="L1"2428351="L1245sm7 endeL5"/.7#L =~0U4p23su4>239 class=7liecu79ajcodemaxncodes"2381351="4123n c8 endeL5"/.8#L =~0U5p24m15>2401class=8line"80on="ajstruc239Tsppsp 8idi5s80 classsssss"ajstruc 180> 37 6jjjjjjjswitchconew &= actio clam 5   : -17 6-- action=n"L<<<<<<<<>149236.4>239ion="aj8odecu80Chrissjjjjji5casetkjco_cache_alloMPOL_DEFAULT124asF_SHARED &MPOL_DEFAULT="liL<<<<<<<<138s i5s80ivcy.c"eass=,(action=om12_sharedadenio"m2_clea2es_addrpud &no3,6241POLMF >8124ed81 clano3line" nam2e="com12_new &= io"m2_clea2es_addrpud &no3,6<: -17 6-- action=="ajcotkjco_cache_alloMPOL_F_LOCAL124asF_SHARED &MPOL_F_LOCAL="li oden longs32387351="L123>241s= acti8n="aj81jjjjjjjjjjjjjjbreak" jstruc241m1276="81"> 18"> 37 6cla" id="L5" clnam2e="com12_new &= io"m_sctrod>24137 6 ac8ion="81Chrissjjjjji5s"L1"asubreaknam1248="L1"2428351="L1245sm8> 1356"
	o8	offset i24"L1>241356">138s i5s81241deBITLL8LLLL<81a" id="L5"errcasetkjco_cache_alloMPOL_BINt124asF_SHARED &MPOL_BINt="liL<<<<<<<<241 clas,68actio81on=asu,6
"* Instaln non-e7 Fase throughc*ion="ajcoden longs32387351="L123>13224spa>242  actio8="ajc82 clano3line" nam2e="co &= action="o"m2esvmae7[0]<: asude &pmas"ctkjco_cache_alloactm 5   : -17 6--penne" -&ajcNODEMASK_SCRATCt124asF_SHARED &vion=1="Lend &= ac"o"m2esvmae7[0]<: asude &pmasnam1248="L1"2428351="L1245sm8ude copy_f8om_userea24spa>2422 actio8="ajc82on="aj"eass=,(acti clbreaknam1248="L1"2428351="L1245sm8uss/a>>2423on="aj8odecu82="ajcode_sarct5"24m4351="5m2351=8m_add5eass8 *action=24&no>242de EINV8L/.c#82 id="Lcla" id   *ameL<<<<<<<<1320* 24 ac>2425e EINV8L/.c#82> 3"aj/GE3"line" nam2"L5" cd-new &= actioEINVAL124asF_SHARED &EINVALpmasnam1248="L1"2428351="L1245sm8u6asude EI825aa>120n24"> >242ion="aj8odecu82Chrisscla" idpan class="c2359351="L123NCV8  1356"
	o8n="ajcode24d=">242356">138s i5s82242dlist {8> 5  824s,6<: -17 6-bufn-Nonn= +onew &= actio axleaflags><: -17 6-243x7 6p c8ass="83on=asude &pmass=,6"L1"L5" cd-new &= actioENOSPC124asF_SHARED &ENOSPCpmasnam1248="L1"2428351="L1245sm8" class="l8ne" namee244"L>243POLMF L8nux k83ne" nam1248="L1"2362351="L123"aj8.
<8a pageden244ss>24337 6p L8nux k83E3,6243; id= L8nux k83jjjjjjcla" idnextess/a>_add5eass8hmass)6 {242437="L< L8nux k83ne" nam1248="L1"2445351="L124/.c8>Im2e="L138 down_wri24ees>243m1276 L8nux k83> 37 6cla" idaerrm12 &= actiosude flags><: -17 6-- action=="ajcotkjco_cache_alloMPOL_MODE_FLAGS124asF_SHARED &MPOL_MODE_FLAGSion=n"L<<<<<<<<243ion=" L8nux k83Chrissjjjjji5s"L1"asuaerrm12 &= actiobufn-Nflags><: -17 6-bufn-Nonn= +onew &= actio axleaflags><: -17 6-243243s/a>&qu12_son=shareder y=der y"ajcodenam1248="L1"2447351="L124	is8/endeL5"/.85/.c#L  i24s/a>243dlistsO8the L83ajcodemaxncodes"2381351="4123n c8i>eess/a><8pasude up24p_w>244o/a>
"* Instaln non-e7on="ajcoden longs32387351="L123> 1248 3244  actvo8=",6<84nel.
/**" id="L5" cl,(action=cccccccc* C a rLfly, 7="Lonls    i=p i- act"are mutu 5 y exclusiv=="line* User  idcd2441351="L124p_w8sude er5/.8#L =- act2424437 6p<"8 37 684nel.
u* om12_sharedad(action=cccccccc*ion="ajcoden longs32387351="L123>2443on="aj8odecu84jjjjjjjjjjjjjjbreak" aerrm12 &= actiosude flags><: -17 6-- action=="ajcotkjco_cache_alloMPOL_F_STATIC_NODES124asF_SHARED &MPOL_F_STATIC_NODESne"  oden longs32387351="L123>244de EI c8ass="84 id="Ltion="ajgotoa,6ss=,6"L1sextess/a><: -17 6-bufn-Nonn= +onew &= actio axleaflags><: -17 6-&qu12_son=sharedadenis=,(acction="ajcode nam1248="L1"2447351="L124	is8iIm2e="L138class="li24/.c>2445e EINV8L/.c#84> 3"aj/GE3"line" nam2me7="e="Lnew &= actiosude flags><: -17 6-- action=="ajcotkjco_cache_alloMPOL_F_RELATIVE_NODES124asF_SHARED &MPOL_F_RELATIVE_NODESne"  oden longs32387351="L123><>2446id="L48 clas84Chrissjjjjji5s"L1"asuss=,6"L1sextess/a><: -17 6-bufn-Nonn= +onew &= actio axleaflags><: -17 6-&qu12_son=sharedadenirel,(avaction="ajcode nam1248="L1"2447351="L124	is8i 1356"
	o812412424	is>2447e EI c8ass="740otioo"L123>244o/a>242de e2s8 *action=24&nootioo"L123>244oetiobufn-Nflags><:od>2431class=7li8e"7ion="ajstruc<: -17 6-243Tsppsp 7id8"L7" classde &pmass=,6act8ODEMA8K_SCRATCn="new &noasuddddddddd124asF_SHARED &ENOSPCpmasnam1248="L1"2428351="L1245sm8"ncod/.c#L8e task_un24c"e>243 &IGR c7as8="75E3,6&qu12_son=shareder y=der y"ajcodenam1248="L1"2447351="L124	is7546248s= acti7n=8aj75jjjjjjjjjjjjjjbreak" 8ODEMA8K_SCRATCn="new &noasude &pmass=,6-&aj_cache_allosnprintfjcoden lo &no4s<: -17 6-bufn-Nonn= +onew &= actio axleaflags><: -17 6-&qu12_son=sharedadenirel<: asude &pmas nam1248="L1"2428351="L1245sm8o6asude EI8s/a>241de EINV7L/8c#7  id="Ltion="ame7=am1288="L182428351="L1245ss/a>0otioo"L123> 37 6cLinux kernel.<8m12_p8dsigned n="new&no" class="line" nam1_cache_allosnprintfjcos/,6pne" ,=ring">n=nam1248="L1"2447351="L124	is7od/.c#p  i7="L4" c4a23ax49248ion="aj7od8cu75coden longs30otioo"L123>
"8 Inst8ln non


Tu 5 riginal LXR softw Usebyutu 5/a>0otioohttp://sourceforge.netser jects/lx12>LXR n="aus acdenireonactexperiajcoal versionebyu/a>0otioo"ailto:lx1@GE3ux.no">lx1@GE3ux.noae7[0
lx1.GE3ux.no kindd24hosen lbyu/a>0otioohttp://www.redpill-GE3er .no">Redpill LE3er ASdenireer vidjcposiLE3uxactssul="L1ngs32opertion=s services since 1995.