linux/drivers/xen/xen-acpi-processor.c
<<
>>
navtarge2 textc"> nput typid nput tyi-procesbuttpan> tion> ">Sput t g src=+p srs? < ajaxnlookupypid ajaxnlookupyp> s rdivbid file_conten s"o

#L1ypid L1ypmit="retineyp> L1y>imp1ro m onsubmit="recommen ">/*hod="pos< g src=right.png" alt=">>"> #L2ypid L2ypmit="retineyp> L2y>imp2ro m onsubmit="recommen "> * Copy"> 2012 by Oracle Inchod="pos< g src=right.png" alt=">>"> #L3ypid L3ypmit="retineyp> L3y>imp3ro m onsubmit="recommen "> * Au"hir: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com+seahod="pos< g src=right.png" alt=">>"> #L4ypid L4ypmit="retineyp> L4y>imp4ro m onsubmit="recommen "> *hod="pos< g src=right.png" alt=">>"> #L5ypid L5ypmit="retineyp> L5y>imp5ro m onsubmit="recommen "> * Ten- code borrowspideas from https://lkml.org/lkml/2011/11/30/2tiond="pos< g src=right.png" alt=">>"> #L6ypid L6ypmit="retineyp> L6y>imp6ro m onsubmit="recommen "> * so many thanks go to Kevin Tisub<kevin.tisu@intel.com+seahod="pos< g src=right.png" alt=">>"> #L7ypid L7ypmit="retineyp> L7y>imp7ro m onsubmit="recommen "> * and Yu Keb<ke.yu@intel.com+sea.hod="pos< g src=right.png" alt=">>"> #L8ypid L8ypmit="retineyp> L8y>imp8ro m onsubmit="recommen "> *hod="pos< g src=right.png" alt=">>"> #L9ypid L9ypmit="retineyp> L9y>imp9ro m onsubmit="recommen "> * Ten- gt;gram is free software; you csubredistribute it and/or modify ithod="pos< g src=right.png" alt=">>"> #L10ypid L10ypmit="retineyp> L10y>imon> m onsubmit="recommen "> * under the terms and condi s of the GNU General Public License,hod="pos< g src=right.png" alt=">>"> #L11ypid L11ypmit="retineyp> L11y>im11ro m onsubmit="recommen "> * ht.pspan2, as published by the Free Software Founda .hod="pos< g src=right.png" alt=">>"> #L12ypid L12ypmit="retineyp> L12y>im12ro m onsubmit="recommen "> *hod="pos< g src=right.png" alt=">>"> #L13ypid L13ypmit="retineyp> L13y>im13ro m onsubmit="recommen "> * Ten- gt;gram is distributed in the hope it will be useful, but WITHOUThod="pos< g src=right.png" alt=">>"> #L14ypid L14ypmit="retineyp> L14y>im14ro m onsubmit="recommen "> * ANY WARRANTY; wi"hiut even the implied warranty of MERCHANTABILITY orhod="pos< g src=right.png" alt=">>"> #L15ypid L15ypmit="retineyp> L15y>im15ro m onsubmit="recommen "> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License forhod="pos< g src=right.png" alt=">>"> #L16ypid L16ypmit="retineyp> L16y>im16ro m onsubmit="recommen "> * more details.hod="pos< g src=right.png" alt=">>"> #L17ypid L17ypmit="retineyp> L17y>im17ro m onsubmit="recommen "> *hod="pos< g src=right.png" alt=">>"> #L18ypid L18ypmit="retineyp> L18y>im18ro m onsubmit="recommen "> */hod="pos< g src=right.png" alt=">>"> #L19ypid L19ypmit="retineyp> L19y>im19ro ms< g src=right.png" alt=">>"> #L20ypid L20ypmit="retineyp> L20y>im2n> m#includeb<< g src=include./.sta/cpumask.hypmit="refref">/.sta/cpumask.h> m+seas< g src=right.png" alt=">>"> #L21ypid L21ypmit="retineyp> L21y>im21> m#includeb<< g src=include./.sta/cpufreq.hypmit="refref">/.sta/cpufreq.h> m+seas< g src=right.png" alt=">>"> #L22ypid L22ypmit="retineyp> L22y>im22> m#includeb<< g src=include./.sta/freezer.hypmit="refref">/.sta/freezer.h> m+seas< g src=right.png" alt=">>"> #L23ypid L23ypmit="retineyp> L23y>im23> m#includeb<< g src=include./.sta/kernel.hypmit="refref">/.sta/kernel.h> m+seas< g src=right.png" alt=">>"> #L24ypid L24ypmit="retineyp> L24y>im24> m#includeb<< g src=include./.sta/ktg sad.hypmit="refref">/.sta/ktg sad.h> m+seas< g src=right.png" alt=">>"> #L25ypid L25ypmit="retineyp> L25y>im25> m#includeb<< g src=include./.sta/init.hypmit="refref">/.sta/init.h> m+seas< g src=right.png" alt=">>"> #L26ypid L26ypmit="retineyp> L26y>im26> m#includeb<< g src=include./.sta/module.hypmit="refref">/.sta/module.h> m+seas< g src=right.png" alt=">>"> #L27ypid L27ypmit="retineyp> L27y>im27> m#includeb<< g src=include./.sta/> s.hypmit="refref">/.sta/> s.h> m+seas< g src=right.png" alt=">>"> #L28ypid L28ypmit="retineyp> L28y>im28> m#includeb<< g src=include.>.>_bus.hypmit="refref">>.>_bus.h> m+seas< g src=right.png" alt=">>"> #L29ypid L29ypmit="retineyp> L29y>im29> m#includeb<< g src=include.>.>_right.p.hypmit="refref">>.>_right.p.h> m+seas< g src=right.png" alt=">>"> #L30ypid L30ypmit="retineyp> L30y>im3n> m#includeb<< g src=include.>.gt;"> hypmit="refref">>.gt;"> h> m+seas< g src=right.png" alt=">>"> #L31ypid L31ypmit="retineyp> L31y>im31ro ms< g src=right.png" alt=">>"> #L32ypid L32ypmit="retineyp> L32y>im32> m#includeb<< g src=include.g" alt= hypmit="refref">g" alt= h> m+seas< g src=right.png" alt=">>"> #L33ypid L33ypmit="retineyp> L33y>im33> m#includeb<< g src=include.g" ainterface/platcess hypmit="refref">g" ainterface/platcess h> m+seas< g src=right.png" alt=">>"> #L34ypid L34ypmit="retineyp> L34y>im34> m#includeb<< g src=+ambig=include.&sm-alphang" ah rcall.h|include.&sm-armng" ah rcall.h|include.&sm-avr32ng" ah rcall.h|include.&sm-blackfinng" ah rcall.h|include.&sm-crisng" ah rcall.h|include.&sm-frvng" ah rcall.h|include.&sm-genericng" ah rcall.h|include.&sm-h8300ng" ah rcall.h|include.&sm-i386ng" ah rcall.h|include.&sm-ia64ng" ah rcall.h|include.&sm-m32rng" ah rcall.h|include.&sm-m68kng" ah rcall.h|include.&sm-m68knommung" ah rcall.h|include.&sm-mipsng" ah rcall.h|include.&sm-mips64ng" ah rcall.h|include.&sm-pariscng" ah rcall.h|include.&sm-powerpcng" ah rcall.h|include.&sm-ppcng" ah rcall.h|include.&sm-s390ng" ah rcall.h|include.&sm-shng" ah rcall.h|include.&sm-sh64ng" ah rcall.h|include.&sm-d="rcng" ah rcall.h|include.&sm-s="rc64ng" ah rcall.h|include.&sm-umng" ah rcall.h|include.&sm-v850ng" ah rcall.h|include.&sm-x86ng" ah rcall.h|include.&sm-x86_64ng" ah rcall.h|include.&sm-xtensang" ah rcall.hypmit="refal ">&smng" ah rcall.h> m+seas< g src=right.png" alt=">>"> #L35ypid L35ypmit="retineyp> L35y>im35ro ms< g src=right.png" alt=">>"> #L36ypid L36ypmit="retineyp> L36y>im36> m#define"> g src=+code=DRV_NAME"bmit="renref">DRV_NAME> m onsubmit="restring">"lt=">>">: "hod="pos< g src=right.png" alt=">>"> #L37ypid L37ypmit="retineyp> L37y>im37ro ms< g src=right.png" alt=">>"> #L38ypid L38ypmit="retineyp> L38y>im38> m"lxr_s int"> g src=+code=no_h rcall"bmit="renref">no_h rcall> mas< g src=right.png" alt=">>"> #L39ypid L39ypmit="retineyp> L39y>im39ro m g src=+code=MODULE_PARM_DESC"bmit="renref">MODULE_PARM_DESCro m( g src=+code=off"bmit="renref">offro m, onsubmit="restring">"Inhibit the h rcall."hod="po)as< g src=right.png" alt=">>"> #L40ypid L40ypmit="retineyp> L40y>im40ro m g src=+code=module_="ram_> d"bmit="renref">module_="ram_> dro m( g src=+code=off"bmit="renref">offro m, g src=+code=no_h rcall"bmit="renref">no_h rcall> m, int, 0400)as< g src=right.png" alt=">>"> #L41ypid L41ypmit="retineyp> L41y>im41ro ms< g src=right.png" alt=">>"> #L42ypid L42ypmit="retineyp> L42y>im42ro m onsubmit="recommen ">/*hod="pos< g src=right.png" alt=">>"> #L43ypid L43ypmit="retineyp> L43y>im43ro m onsubmit="recommen "> * Note: Do not conht.t the >_id* below to cpumask_var_t or use cpumask_bithod="pos< g src=right.png" alt=">>"> #L44ypid L44ypmit="retineyp> L44y>im44ro m onsubmit="recommen "> * - as those shrink to nr_cpu_bits (which is dependen on possible_cpu), whichhod="pos< g src=right.png" alt=">>"> #L45ypid L45ypmit="retineyp> L45y>im45ro m onsubmit="recommen "> * csubbe l> #L46ypid L46ypmit="retineyp> L46y>im46ro m onsubmit="recommen "> * which is dy> ically computed based on the MADT or x2APIC table.hod="pos< g src=right.png" alt=">>"> #L47ypid L47ypmit="retineyp> L47y>im47ro m onsubmit="recommen "> */hod="pos< g src=right.png" alt=">>"> #L48ypid L48ypmit="retineyp> L48y>im48> m"lxr_s unsigned int"> g src=+code=nr_>_bits"bmit="renref">nr_>_bits> mas< g src=right.png" alt=">>"> #L49ypid L49ypmit="retineyp> L49y>im49ro m onsubmit="recommen ">/* Mutex to rrotect the >_ids_done - ces CPU hotplug use. */hod="pos< g src=right.png" alt=">>"> #L50ypid L50ypmit="retineyp> L50y>im50> m"lxr_s > g src=+code=DEFINE_MUTEX"bmit="renref">DEFINE_MUTEXro m( g src=+code=>_ids_mutex"bmit="renref">>_ids_mutexro m)as< g src=right.png" alt=">>"> #L51ypid L51ypmit="retineyp> L51y>im51ro m onsubmit="recommen ">/* Which ACPI ID we have gt;">'. */hod="pos< g src=right.png" alt=">>"> #L52ypid L52ypmit="retineyp> L52y>im52> m"lxr_s unsigned long * g src=+code=>_ids_doneypmit="renref">>_ids_done> mas< g src=right.png" alt=">>"> #L53ypid L53ypmit="retineyp> L53y>im53ro m onsubmit="recommen ">/* Which ACPI ID exist in the SSDT/DSDT gt;"> defini s. */hod="pos< g src=right.png" alt=">>"> #L54ypid L54ypmit="retineyp> L54y>im54> m"lxr_s unsigned long g src=+code=__ini dataypmit="renref">__ini data> m * g src=+code=>_idnp ssen "pmit="renref">>_idnp ssen > mas< g src=right.png" alt=">>"> #L55ypid L55ypmit="retineyp> L55y>im55ro m onsubmit="recommen ">/* And if there is sub_CST defini (a> a PBLK) ces the ACPI IDs */hod="pos< g src=right.png" alt=">>"> #L56ypid L56ypmit="retineyp> L56y>im56> m"lxr_s unsigned long g src=+code=__ini dataypmit="renref">__ini data> m * g src=+code=>_idncstnp ssen "pmit="renref">>_idncstnp ssen > mas< g src=right.png" alt=">>"> #L57ypid L57ypmit="retineyp> L57y>im57ro ms< g src=right.png" alt=">>"> #L58ypid L58ypmit="retineyp> L58y>im58> m"lxr_s int"> g src=+code=push_cxx_to_h rvi/a>"pmit="renref">push_cxx_to_h rvi/a>ro m(struct g src=+code=>_gt;">"pmit="renref">>_gt;">> m * g src=+code=_gtypmit="renref">_p>> m)s< g src=right.png" alt=">>"> #L59ypid L59ypmit="retineyp> L59y>im59ro m{s< g src=right.png" alt=">>"> #L60ypid L60ypmit="retineyp> L60y>im60> m struct g src=+code=lt=_platcess_opypmit="renref">lt=_platcess_op> m g src=+code=opypmit="renref">op> m = {s< g src=right.png" alt=">>"> #L61ypid L61ypmit="retineyp> L61y>im61> m . g src=+code=cmd"bmit="renref">cmd> m = g src=+code=XENPF_set_gt;">_pminfo"bmit="renref">XENPF_set_gt;">_pminfo> m,s< g src=right.png" alt=">>"> #L62ypid L62ypmit="retineyp> L62y>im62> m . g src=+code=interface_ht.pspa"bmit="renref">interface_ht.pspa> m = g src=+code=XENPF_INTERFACE_VERSION"bmit="renref">XENPF_INTERFACE_VERSION> m,s< g src=right.png" alt=">>"> #L63ypid L63ypmit="retineyp> L63y>im63> m . g src=+code=u"bmit="renref">u> m. g src=+code=set_gminfo"bmit="renref">set_gminfo> m. g src=+code=id"bmit="renref">id> m = g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=>_id"pmit="renref">>_id> m,s< g src=right.png" alt=">>"> #L64ypid L64ypmit="retineyp> L64y>im64> m . g src=+code=u"bmit="renref">u> m. g src=+code=set_gminfo"bmit="renref">set_gminfo> m. g src=+code=> "bmit="renref">> > m = g src=+code=XEN_PM_CX"bmit="renref">XEN_PM_CX> m,s< g src=right.png" alt=">>"> #L65ypid L65ypmit="retineyp> L65y>im65> m }as< g src=right.png" alt=">>"> #L66ypid L66ypmit="retineyp> L66y>im66> m struct g src=+code=lt=_pt;">_cx"bmit="renref">lt=_pt;">_cx> m * g src=+code=dstncx"bmit="renref">dstncx> m, * g src=+code=dstncx_"lxres"bmit="renref">dstncx_"lxres> m = g src=+code=NULL"bmit="renref">NULL> mas< g src=right.png" alt=">>"> #L67ypid L67ypmit="retineyp> L67y>im67> m struct g src=+code=>_gt;">ncx"bmit="renref">>_gt;">ncx> m * g src=+code=cx"bmit="renref">cx> mas< g src=right.png" alt=">>"> #L68ypid L68ypmit="retineyp> L68y>im68> m unsigned int"> g src=+code=i"bmit="renref">iro m, g src=+code=okypmit="renref">ok> mas< g src=right.png" alt=">>"> #L69ypid L69ypmit="retineyp> L69y>im69> m int"> g src=+code=re "pmit="renref">re > m = 0as< g src=right.png" alt=">>"> #L70ypid L70ypmit="retineyp> L70y>im70ro ms< g src=right.png" alt=">>"> #L71ypid L71ypmit="retineyp> L71y>im71> m g src=+code=dstncx_"lxres"bmit="renref">dstncx_"lxres> m = g src=+code=kcalloc"bmit="renref">kcallocro m( g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=power"pmit="renref">power> m. g src=+code=coun "pmit="renref">coun > m,s< g src=right.png" alt=">>"> #L72ypid L72ypmit="retineyp> L72y>im72> m sizeof(struct g src=+code=lt=_pt;">_cx"bmit="renref">lt=_pt;">_cx> m), g src=+code=GFP_KERNEL"bmit="renref">GFP_KERNELro m)as< g src=right.png" alt=">>"> #L73ypid L73ypmit="retineyp> L73y>im73> m if (! g src=+code=dstncx_"lxres"bmit="renref">dstncx_"lxres> m)s< g src=right.png" alt=">>"> #L74ypid L74ypmit="retineyp> L74y>im74> m ENOMEM> mas< g src=right.png" alt=">>"> #L75ypid L75ypmit="retineyp> L75y>im75ro ms< g src=right.png" alt=">>"> #L76ypid L76ypmit="retineyp> L76y>im76> m ces ( g src=+code=okypmit="renref">ok> m = 0, g src=+code=i"bmit="renref">iro m = 1; g src=+code=i"bmit="renref">iro m <= g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=power"pmit="renref">power> m. g src=+code=coun "pmit="renref">coun > m; g src=+code=i"bmit="renref">iro m++) {s< g src=right.png" alt=">>"> #L77ypid L77ypmit="retineyp> L77y>im77> m g src=+code=cx"bmit="renref">cx> m = &ah g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=power"pmit="renref">power> m. g src=+code="lxres"bmit="renref">"lxres> m[ g src=+code=i"bmit="renref">iro m]as< g src=right.png" alt=">>"> #L78ypid L78ypmit="retineyp> L78y>im78> m if (! g src=+code=cx"bmit="renref">cx> m-+seah g src=+code=valid"pmit="renref">valid> m)s< g src=right.png" alt=">>"> #L79ypid L79ypmit="retineyp> L79y>im79> m continueas< g src=right.png" alt=">>"> #L80ypid L80ypmit="retineyp> L80y>im80ro ms< g src=right.png" alt=">>"> #L81ypid L81ypmit="retineyp> L81y>im81> m g src=+code=dstncx"bmit="renref">dstncx> m = &a( g src=+code=dstncx_"lxres"bmit="renref">dstncx_"lxres> m[ g src=+code=okypmit="renref">ok> m++])as< g src=right.png" alt=">>"> #L82ypid L82ypmit="retineyp> L82y>im82ro ms< g src=right.png" alt=">>"> #L83ypid L83ypmit="retineyp> L83y>im83> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=reg"pmit="renref">reg> m. g src=+code="pace_id"pmit="renref">"pace_id> m = g src=+code=ACPI_ADR_SPACE_SYSTEM_IO"pmit="renref">ACPI_ADR_SPACE_SYSTEM_IO> mas< g src=right.png" alt=">>"> #L84ypid L84ypmit="retineyp> L84y>im84> m if ( g src=+code=cx"bmit="renref">cx> m-+seah g src=+code=entry_e="hid"bmit="renref">entry_e="hid> m == g src=+code=ACPI_CSTATE_SYSTEMIO"pmit="renref">ACPI_CSTATE_SYSTEMIO> m) {s< g src=right.png" alt=">>"> #L85ypid L85ypmit="retineyp> L85y>im85> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=reg"pmit="renref">reg> m. g src=+code=bit_width"pmit="renref">bit_width> m = 8as< g src=right.png" alt=">>"> #L86ypid L86ypmit="retineyp> L86y>im86> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=reg"pmit="renref">reg> m. g src=+code=bit_offse "pmit="renref">bit_offse > m = 0as< g src=right.png" alt=">>"> #L87ypid L87ypmit="retineyp> L87y>im87> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=reg"pmit="renref">reg> m. g src=+code=ac">&g"> #L88ypid L88ypmit="retineyp> L88y>im88> m } else {s< g src=right.png" alt=">>"> #L89ypid L89ypmit="retineyp> L89y>im89> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=reg"pmit="renref">reg> m. g src=+code="pace_id"pmit="renref">"pace_id> m = g src=+code=ACPI_ADR_SPACE_FIXED_HARDWARE"bmit="renref">ACPI_ADR_SPACE_FIXED_HARDWARE> mas< g src=right.png" alt=">>"> #L90ypid L90ypmit="retineyp> L90y>im90> m if ( g src=+code=cx"bmit="renref">cx> m-+seah g src=+code=entry_e="hid"bmit="renref">entry_e="hid> m == g src=+code=ACPI_CSTATE_FFH"pmit="renref">ACPI_CSTATE_FFH> m) {s< g src=right.png" alt=">>"> #L91ypid L91ypmit="retineyp> L91y>im91> m onsubmit="recommen ">/* NATIVE_CSTATE_BEYOND_HALT */hod="pos< g src=right.png" alt=">>"> #L92ypid L92ypmit="retineyp> L92y>im92> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=reg"pmit="renref">reg> m. g src=+code=bit_offse "pmit="renref">bit_offse > m = 2as< g src=right.png" alt=">>"> #L93ypid L93ypmit="retineyp> L93y>im93> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=reg"pmit="renref">reg> m. g src=+code=bit_width"pmit="renref">bit_width> m = 1; onsubmit="recommen ">/* VENDOR_INTEL */hod="pos< g src=right.png" alt=">>"> #L94ypid L94ypmit="retineyp> L94y>im94> m }s< g src=right.png" alt=">>"> #L95ypid L95ypmit="retineyp> L95y>im95> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=reg"pmit="renref">reg> m. g src=+code=ac">&g"> #L96ypid L96ypmit="retineyp> L96y>im96> m }s< g src=right.png" alt=">>"> #L97ypid L97ypmit="retineyp> L97y>im97> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=reg"pmit="renref">reg> m. g src=+code=addr>&ddr> m = g src=+code=cx"bmit="renref">cx> m-+seah g src=+code=addr>&ddr> mas< g src=right.png" alt=">>"> #L98ypid L98ypmit="retineyp> L98y>im98ro ms< g src=right.png" alt=">>"> #L99ypid L99ypmit="retineyp> L99y>im99> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=> "bmit="renref">> > m = g src=+code=cx"bmit="renref">cx> m-+seah g src=+code=> "bmit="renref">> > mas< g src=right.png" alt=">>"> #L100ypid L100ypmit="retineyp> L100y>i100> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=latency"bmit="renref">latency> m = g src=+code=cx"bmit="renref">cx> m-+seah g src=+code=latency"bmit="renref">latency> mas< g src=right.png" alt=">>"> #L101ypid L101ypmit="retineyp> L101y>i101> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=power"pmit="renref">power> m = g src=+code=cx"bmit="renref">cx> m-+seah g src=+code=power"pmit="renref">power> mas< g src=right.png" alt=">>"> #L102ypid L102ypmit="retineyp> L102y>i102ro ms< g src=right.png" alt=">>"> #L103ypid L103ypmit="retineyp> L103y>i103> m g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=dpcn "pmit="renref">dpcn ro m = 0as< g src=right.png" alt=">>"> #L104ypid L104ypmit="retineyp> L104y>i104> m g src=+code="et_lt=_guestnhandl "bmit="renref">"et_lt=_guestnhandl ro m( g src=+code=dstncx"bmit="renref">dstncx> m-+seah g src=+code=dp"pmit="renref">dpro m, g src=+code=NULL"bmit="renref">NULL> m)as< g src=right.png" alt=">>"> #L105ypid L105ypmit="retineyp> L105y>i105> m }s< g src=right.png" alt=">>"> #L106ypid L106ypmit="retineyp> L106y>i106> m if (! g src=+code=okypmit="renref">ok> m) {s< g src=right.png" alt=">>"> #L107ypid L107ypmit="retineyp> L107y>i107> m g src=+code=pr_debug"pmit="renref">pr_debugro m( g src=+code=DRV_NAME"bmit="renref">DRV_NAME> m onsubmit="restring">"No _Cx ces ACPI CPU %u\n"hod="po, g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=>_id"pmit="renref">>_id> m)as< g src=right.png" alt=">>"> #L108ypid L108ypmit="retineyp> L108y>i108> m g src=+code=kfree"bmit="renref">kfreero m( g src=+code=dstncx_"lxres"bmit="renref">dstncx_"lxres> m)as< g src=right.png" alt=">>"> #L109ypid L109ypmit="retineyp> L109y>i109> m EINVAL> mas< g src=right.png" alt=">>"> #L110ypid L110ypmit="retineyp> L110y>i110> m }s< g src=right.png" alt=">>"> #L111ypid L111ypmit="retineyp> L111y>i111> m g src=+code=opypmit="renref">op> m. g src=+code=u"bmit="renref">u> m. g src=+code=set_gminfo"bmit="renref">set_gminfo> m. g src=+code=power"pmit="renref">power> m. g src=+code=coun "pmit="renref">coun > m = g src=+code=okypmit="renref">ok> mas< g src=right.png" alt=">>"> #L112ypid L112ypmit="retineyp> L112y>i112> m g src=+code=opypmit="renref">op> m. g src=+code=u"bmit="renref">u> m. g src=+code=set_gminfo"bmit="renref">set_gminfo> m. g src=+code=power"pmit="renref">power> m. g src=+code=flags"bmit="renref">flags> m. g src=+code=bm_control"bmit="renref">bm_control> m = g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=flags"bmit="renref">flags> m. g src=+code=bm_control"bmit="renref">bm_control> mas< g src=right.png" alt=">>"> #L113ypid L113ypmit="retineyp> L113y>i113> m g src=+code=opypmit="renref">op> m. g src=+code=u"bmit="renref">u> m. g src=+code=set_gminfo"bmit="renref">set_gminfo> m. g src=+code=power"pmit="renref">power> m. g src=+code=flags"bmit="renref">flags> m. g src=+code=bm_checkypmit="renref">bm_check> m = g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=flags"bmit="renref">flags> m. g src=+code=bm_checkypmit="renref">bm_check> mas< g src=right.png" alt=">>"> #L114ypid L114ypmit="retineyp> L114y>i114> m g src=+code=opypmit="renref">op> m. g src=+code=u"bmit="renref">u> m. g src=+code=set_gminfo"bmit="renref">set_gminfo> m. g src=+code=power"pmit="renref">power> m. g src=+code=flags"bmit="renref">flags> m. g src=+code=hasncst"bmit="renref">hasncst> m = g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=flags"bmit="renref">flags> m. g src=+code=hasncst"bmit="renref">hasncst> mas< g src=right.png" alt=">>"> #L115ypid L115ypmit="retineyp> L115y>i115> m g src=+code=opypmit="renref">op> m. g src=+code=u"bmit="renref">u> m. g src=+code=set_gminfo"bmit="renref">set_gminfo> m. g src=+code=power"pmit="renref">power> m. g src=+code=flags"bmit="renref">flags> m. g src=+code=power_setup_doneypmit="renref">power_setup_done> m =s< g src=right.png" alt=">>"> #L116ypid L116ypmit="retineyp> L116y>i116> m g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=flags"bmit="renref">flags> m. g src=+code=power_setup_doneypmit="renref">power_setup_done> mas< g src=right.png" alt=">>"> #L117ypid L117ypmit="retineyp> L117y>i117ro ms< g src=right.png" alt=">>"> #L118ypid L118ypmit="retineyp> L118y>i118> m g src=+code="et_lt=_guestnhandl "bmit="renref">"et_lt=_guestnhandl ro m( g src=+code=opypmit="renref">op> m. g src=+code=u"bmit="renref">u> m. g src=+code=set_gminfo"bmit="renref">set_gminfo> m. g src=+code=power"pmit="renref">power> m. g src=+code="lxres"bmit="renref">"lxres> m, g src=+code=dstncx_"lxres"bmit="renref">dstncx_"lxres> m)as< g src=right.png" alt=">>"> #L119ypid L119ypmit="retineyp> L119y>i119ro ms< g src=right.png" alt=">>"> #L120ypid L120ypmit="retineyp> L120y>i120> m if (! g src=+code=no_h rcall"bmit="renref">no_h rcall> m)s< g src=right.png" alt=">>"> #L121ypid L121ypmit="retineyp> L121y>i121> m g src=+code=re "pmit="renref">re > m = g src=+code=HYPERVISOR_dom0_opypmit="renref">HYPERVISOR_dom0_opro m(&ah g src=+code=opypmit="renref">op> m)as< g src=right.png" alt=">>"> #L122ypid L122ypmit="retineyp> L122y>i122ro ms< g src=right.png" alt=">>"> #L123ypid L123ypmit="retineyp> L123y>i123> m if (! g src=+code=re "pmit="renref">re > m) {s< g src=right.png" alt=">>"> #L124ypid L124ypmit="retineyp> L124y>i124> m g src=+code=pr_debug"pmit="renref">pr_debugro m( onsubmit="restring">"ACPI CPU%u - C-"lxres uploaded.\n"hod="po, g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=>_id"pmit="renref">>_id> m)as< g src=right.png" alt=">>"> #L125ypid L125ypmit="retineyp> L125y>i125> m ces ( g src=+code=i"bmit="renref">iro m = 1; g src=+code=i"bmit="renref">iro m <= g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=power"pmit="renref">power> m. g src=+code=coun "pmit="renref">coun > m; g src=+code=i"bmit="renref">iro m++) {s< g src=right.png" alt=">>"> #L126ypid L126ypmit="retineyp> L126y>i126> m g src=+code=cx"bmit="renref">cx> m = &ah g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=power"pmit="renref">power> m. g src=+code="lxres"bmit="renref">"lxres> m[ g src=+code=i"bmit="renref">iro m]as< g src=right.png" alt=">>"> #L127ypid L127ypmit="retineyp> L127y>i127> m if (! g src=+code=cx"bmit="renref">cx> m-+seah g src=+code=valid"pmit="renref">valid> m)s< g src=right.png" alt=">>"> #L128ypid L128ypmit="retineyp> L128y>i128> m continueas< g src=right.png" alt=">>"> #L129ypid L129ypmit="retineyp> L129y>i129> m g src=+code=pr_debug"pmit="renref">pr_debugro m( onsubmit="restring">" C%d: %s %d uS\n"hod="po,s< g src=right.png" alt=">>"> #L130ypid L130ypmit="retineyp> L130y>i130> m g src=+code=cx"bmit="renref">cx> m-+seah g src=+code=> "bmit="renref">> > m, g src=+code=cx"bmit="renref">cx> m-+seah g src=+code=desc"bmit="renref">desc> m, ( g src=+code=u32ypmit="renref">u32> m) g src=+code=cx"bmit="renref">cx> m-+seah g src=+code=latency"bmit="renref">latency> m)as< g src=right.png" alt=">>"> #L131ypid L131ypmit="retineyp> L131y>i131> m }s< g src=right.png" alt=">>"> #L132ypid L132ypmit="retineyp> L132y>i132> m } else if ( g src=+code=re "pmit="renref">re > m !=t- g src=+code=EINVAL"bmit="renref">EINVAL> m)s< g src=right.png" alt=">>"> #L133ypid L133ypmit="retineyp> L133y>i133> m onsubmit="recommen ">/* EINVAL means the ACPI ID is incorrect - meaning the ACPIhod="pos< g src=right.png" alt=">>"> #L134ypid L134ypmit="retineyp> L134y>i134ro m onsubmit="recommen "> * table is srerencing a non-existing CPU - which csubhappenhod="pos< g src=right.png" alt=">>"> #L135ypid L135ypmit="retineyp> L135y>i135ro m onsubmit="recommen "> * wi"h broken ACPI tables. */hod="pos< g src=right.png" alt=">>"> #L136ypid L136ypmit="retineyp> L136y>i136> m g src=+code=pr_err"pmit="renref">pr_errro m( g src=+code=DRV_NAME"bmit="renref">DRV_NAME> m onsubmit="restring">"(CX): H rvi/a> erres (%d) ces ACPI CPU%u\n"hod="po,s< g src=right.png" alt=">>"> #L137ypid L137ypmit="retineyp> L137y>i137> m g src=+code=re "pmit="renref">re > m, g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=>_id"pmit="renref">>_id> m)as< g src=right.png" alt=">>"> #L138ypid L138ypmit="retineyp> L138y>i138ro ms< g src=right.png" alt=">>"> #L139ypid L139ypmit="retineyp> L139y>i139> m g src=+code=kfree"bmit="renref">kfreero m( g src=+code=dstncx_"lxres"bmit="renref">dstncx_"lxres> m)as< g src=right.png" alt=">>"> #L140ypid L140ypmit="retineyp> L140y>i140ro ms< g src=right.png" alt=">>"> #L141ypid L141ypmit="retineyp> L141y>i141> m re > mas< g src=right.png" alt=">>"> #L142ypid L142ypmit="retineyp> L142y>i142ro m}s< g src=right.png" alt=">>"> #L143ypid L143ypmit="retineyp> L143y>i143ro m"lxr_s struct g src=+code=lt=_pt;">_px"bmit="renref">lt=_pt;">_px> m *s< g src=right.png" alt=">>"> #L144ypid L144ypmit="retineyp> L144y>i144ro m g src=+code=lt=_copy_pss_dataypmit="renref">lt=_copy_pss_dataro m(struct g src=+code=>_gt;">"pmit="renref">>_gt;">> m * g src=+code=_gtypmit="renref">_p>> m,s< g src=right.png" alt=">>"> #L145ypid L145ypmit="retineyp> L145y>i145> m struct g src=+code=lt=_pt;">_percessance"bmit="renref">lt=_pt;">_percessance> m * g src=+code=dstnperc"bmit="renref">dstnperc> m)s< g src=right.png" alt=">>"> #L146ypid L146ypmit="retineyp> L146y>i146ro m{s< g src=right.png" alt=">>"> #L147ypid L147ypmit="retineyp> L147y>i147> m struct g src=+code=lt=_pt;">_px"bmit="renref">lt=_pt;">_px> m * g src=+code=dstn"lxres"bmit="renref">dstn"lxres> m = g src=+code=NULL"bmit="renref">NULL> mas< g src=right.png" alt=">>"> #L148ypid L148ypmit="retineyp> L148y>i148> m unsigned int"> g src=+code=i"bmit="renref">iro mas< g src=right.png" alt=">>"> #L149ypid L149ypmit="retineyp> L149y>i149ro ms< g src=right.png" alt=">>"> #L150ypid L150ypmit="retineyp> L150y>i150> m g src=+code=BUILD_BUG_ON"bmit="renref">BUILD_BUG_ONro m(sizeof(struct g src=+code=lt=_pt;">_px"bmit="renref">lt=_pt;">_px> m) !=s< g src=right.png" alt=">>"> #L151ypid L151ypmit="retineyp> L151y>i151> m sizeof(struct g src=+code=>_gt;">npx"bmit="renref">>_gt;">npx> m))as< g src=right.png" alt=">>"> #L152ypid L152ypmit="retineyp> L152y>i152ro ms< g src=right.png" alt=">>"> #L153ypid L153ypmit="retineyp> L153y>i153> m g src=+code=dstn"lxres"bmit="renref">dstn"lxres> m = g src=+code=kcalloc"bmit="renref">kcallocro m( g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance"bmit="renref">percessance> m-+seah g src=+code="lxre_coun "pmit="renref">"lxre_coun > m,s< g src=right.png" alt=">>"> #L154ypid L154ypmit="retineyp> L154y>i154> m sizeof(struct g src=+code=lt=_pt;">_px"bmit="renref">lt=_pt;">_px> m), g src=+code=GFP_KERNEL"bmit="renref">GFP_KERNELro m)as< g src=right.png" alt=">>"> #L155ypid L155ypmit="retineyp> L155y>i155> m if (! g src=+code=dstn"lxres"bmit="renref">dstn"lxres> m)s< g src=right.png" alt=">>"> #L156ypid L156ypmit="retineyp> L156y>i156> m ERR_PTRro m(- g src=+code=ENOMEM"bmit="renref">ENOMEM> m)as< g src=right.png" alt=">>"> #L157ypid L157ypmit="retineyp> L157y>i157ro ms< g src=right.png" alt=">>"> #L158ypid L158ypmit="retineyp> L158y>i158> m g src=+code=dstnperc"bmit="renref">dstnperc> m-+seah g src=+code="lxre_coun "pmit="renref">"lxre_coun > m = g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance"bmit="renref">percessance> m-+seah g src=+code="lxre_coun "pmit="renref">"lxre_coun > mas< g src=right.png" alt=">>"> #L159ypid L159ypmit="retineyp> L159y>i159> m ces ( g src=+code=i"bmit="renref">iro m = 0; g src=+code=i"bmit="renref">iro m < g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance"bmit="renref">percessance> m-+seah g src=+code="lxre_coun "pmit="renref">"lxre_coun > ma g src=+code=i"bmit="renref">iro m++) {s< g src=right.png" alt=">>"> #L160ypid L160ypmit="retineyp> L160y>i160> m onsubmit="recommen ">/* Fortunatly ces us, they are both the s size */hod="pos< g src=right.png" alt=">>"> #L161ypid L161ypmit="retineyp> L161y>i161> m g src=+code=memcpy"bmit="renref">memcpyro m(&a( g src=+code=dstn"lxres"bmit="renref">dstn"lxres> m[ g src=+code=i"bmit="renref">iro m]), &a( g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance"bmit="renref">percessance> m-+seah g src=+code="lxres"bmit="renref">"lxres> m[ g src=+code=i"bmit="renref">iro m]),s< g src=right.png" alt=">>"> #L162ypid L162ypmit="retineyp> L162y>i162> m sizeof(struct g src=+code=>_gt;">npx"bmit="renref">>_gt;">npx> m))as< g src=right.png" alt=">>"> #L163ypid L163ypmit="retineyp> L163y>i163> m }s< g src=right.png" alt=">>"> #L164ypid L164ypmit="retineyp> L164y>i164> m dstn"lxres> mas< g src=right.png" alt=">>"> #L165ypid L165ypmit="retineyp> L165y>i165> m}s< g src=right.png" alt=">>"> #L166ypid L166ypmit="retineyp> L166y>i166> m"lxr_s int"> g src=+code=lt=_copy_psd_dataypmit="renref">lt=_copy_psd_dataro m(struct g src=+code=>_gt;">"pmit="renref">>_gt;">> m * g src=+code=_gtypmit="renref">_p>> m,s< g src=right.png" alt=">>"> #L167ypid L167ypmit="retineyp> L167y>i167> m struct g src=+code=lt=_pt;">_percessance"bmit="renref">lt=_pt;">_percessance> m * g src=+code=dst"bmit="renref">dst> m)s< g src=right.png" alt=">>"> #L168ypid L168ypmit="retineyp> L168y>i168> m{s< g src=right.png" alt=">>"> #L169ypid L169ypmit="retineyp> L169y>i169> m struct g src=+code=>_gsd_package"bmit="renref">>_gsd_package> m * g src=+code=pdomaia"bmit="renref">pdomaia> mas< g src=right.png" alt=">>"> #L170ypid L170ypmit="retineyp> L170y>i170ro ms< g src=right.png" alt=">>"> #L171ypid L171ypmit="retineyp> L171y>i171> m g src=+code=BUILD_BUG_ON"bmit="renref">BUILD_BUG_ONro m(sizeof(struct g src=+code=lt=_psd_package"bmit="renref">lt=_psd_package> m) !=s< g src=right.png" alt=">>"> #L172ypid L172ypmit="retineyp> L172y>i172> m sizeof(struct g src=+code=>_gsd_package"bmit="renref">>_gsd_package> m))as< g src=right.png" alt=">>"> #L173ypid L173ypmit="retineyp> L173y>i173> ms< g src=right.png" alt=">>"> #L174ypid L174ypmit="retineyp> L174y>i174> m onsubmit="recommen ">/* This incessa is enumerated only if >_gt;">npreregiste>_percessance> d="pos< g src=right.png" alt=">>"> #L175ypid L175ypmit="retineyp> L175y>i175ro m onsubmit="recommen "> * has beeubmalled.hod="pos< g src=right.png" alt=">>"> #L176ypid L176ypmit="retineyp> L176y>i176ro m onsubmit="recommen "> */hod="pos< g src=right.png" alt=">>"> #L177ypid L177ypmit="retineyp> L177y>i177> m g src=+code=dst"bmit="renref">dst> m-+seah g src=+code="hared_> "bmit="renref">"hared_> > m = g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance"bmit="renref">percessance> m-+seah g src=+code="hared_> "bmit="renref">"hared_> > mas< g src=right.png" alt=">>"> #L178ypid L178ypmit="retineyp> L178y>i178ro ms< g src=right.png" alt=">>"> #L179ypid L179ypmit="retineyp> L179y>i179> m g src=+code=pdomaia"bmit="renref">pdomaia> m = &a( g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance"bmit="renref">percessance> m-+seah g src=+code=domaia_info"bmit="renref">domaia_info> m)as< g src=right.png" alt=">>"> #L180ypid L180ypmit="retineyp> L180y>i180ro ms< g src=right.png" alt=">>"> #L181ypid L181ypmit="retineyp> L181y>i181> m onsubmit="recommen ">/* '>_gt;">npreregiste>_percessance' does not parse if thehod="pos< g src=right.png" alt=">>"> #L182ypid L182ypmit="retineyp> L182y>i182ro m onsubmit="recommen "> * num_gt;">s <= 1, but Xeubstill quires it. Do it sanually here.hod="pos< g src=right.png" alt=">>"> #L183ypid L183ypmit="retineyp> L183y>i183ro m onsubmit="recommen "> */hod="pos< g src=right.png" alt=">>"> #L184ypid L184ypmit="retineyp> L184y>i184> m if ( g src=+code=pdomaia"bmit="renref">pdomaia> m-+seah g src=+code=num_gt;">s"bmit="renref">num_gt;">sro m <= 1) {s< g src=right.png" alt=">>"> #L185ypid L185ypmit="retineyp> L185y>i185> m if ( g src=+code=pdomaia"bmit="renref">pdomaia> m-+seah g src=+code=coord_> "bmit="renref">coord_> > m == g src=+code=DOMAIN_COORD_TYPE_SW_ALL"bmit="renref">DOMAIN_COORD_TYPE_SW_ALL> m)s< g src=right.png" alt=">>"> #L186ypid L186ypmit="retineyp> L186y>i186> m g src=+code=dst"bmit="renref">dst> m-+seah g src=+code="hared_> "bmit="renref">"hared_> > m = g src=+code=CPUFREQ_SHARED_TYPE_ALL"bmit="renref">CPUFREQ_SHARED_TYPE_ALL> mas< g src=right.png" alt=">>"> #L187ypid L187ypmit="retineyp> L187y>i187> m else if ( g src=+code=pdomaia"bmit="renref">pdomaia> m-+seah g src=+code=coord_> "bmit="renref">coord_> > m == g src=+code=DOMAIN_COORD_TYPE_HW_ALL"bmit="renref">DOMAIN_COORD_TYPE_HW_ALL> m)s< g src=right.png" alt=">>"> #L188ypid L188ypmit="retineyp> L188y>i188> m g src=+code=dst"bmit="renref">dst> m-+seah g src=+code="hared_> "bmit="renref">"hared_> > m = g src=+code=CPUFREQ_SHARED_TYPE_HW"bmit="renref">CPUFREQ_SHARED_TYPE_HW> mas< g src=right.png" alt=">>"> #L189ypid L189ypmit="retineyp> L189y>i189> m else if ( g src=+code=pdomaia"bmit="renref">pdomaia> m-+seah g src=+code=coord_> "bmit="renref">coord_> > m == g src=+code=DOMAIN_COORD_TYPE_SW_ANY"bmit="renref">DOMAIN_COORD_TYPE_SW_ANY> m)s< g src=right.png" alt=">>"> #L190ypid L190ypmit="retineyp> L190y>i190> m g src=+code=dst"bmit="renref">dst> m-+seah g src=+code="hared_> "bmit="renref">"hared_> > m = g src=+code=CPUFREQ_SHARED_TYPE_ANY"bmit="renref">CPUFREQ_SHARED_TYPE_ANY> mas< g src=right.png" alt=">>"> #L191ypid L191ypmit="retineyp> L191y>i191> ms< g src=right.png" alt=">>"> #L192ypid L192ypmit="retineyp> L192y>i192> m }s< g src=right.png" alt=">>"> #L193ypid L193ypmit="retineyp> L193y>i193> m g src=+code=memcpy"bmit="renref">memcpyro m(&a( g src=+code=dst"bmit="renref">dst> m-+seah g src=+code=domaia_info"bmit="renref">domaia_info> m), g src=+code=pdomaia"bmit="renref">pdomaia> m, sizeof(struct g src=+code=>_gsd_package"bmit="renref">>_gsd_package> m))as< g src=right.png" alt=">>"> #L194ypid L194ypmit="retineyp> L194y>i194> m #L195ypid L195ypmit="retineyp> L195y>i195> m}s< g src=right.png" alt=">>"> #L196ypid L196ypmit="retineyp> L196y>i196> m"lxr_s int"> g src=+code=lt=_copy_pct_dataypmit="renref">lt=_copy_pct_dataro m(struct g src=+code=>_gct_registe>"bmit="renref">>_gct_registe>> m * g src=+code=pct"bmit="renref">pct> m,s< g src=right.png" alt=">>"> #L197ypid L197ypmit="retineyp> L197y>i197> m struct g src=+code=lt=_pct_registe>"bmit="renref">lt=_pct_registe>> m * g src=+code=dst_pct"bmit="renref">dst_pct> m)s< g src=right.png" alt=">>"> #L198ypid L198ypmit="retineyp> L198y>i198> m{s< g src=right.png" alt=">>"> #L199ypid L199ypmit="retineyp> L199y>i199> m onsubmit="recommen ">/* It would be nice if you could just do 'memcpy(pct, dst_pct') buthod="pos< g src=right.png" alt=">>"> #L200ypid L200ypmit="retineyp> L200y>i200> m onsubmit="recommen "> * sadly the Xeubstructure did not have the gt;per padding so thehod="pos< g src=right.png" alt=">>"> #L201ypid L201ypmit="retineyp> L201y>i201> m onsubmit="recommen "> * descriptor field takes two (dst_pct) byres instead of one (pct).hod="pos< g src=right.png" alt=">>"> #L202ypid L202ypmit="retineyp> L202y>i202ro m onsubmit="recommen "> */hod="pos< g src=right.png" alt=">>"> #L203ypid L203ypmit="retineyp> L203y>i203> m g src=+code=dstnpct"bmit="renref">dst_pct> m-+seah g src=+code=descriptor"bmit="renref">descriptor> m = g src=+code=pct"bmit="renref">pct> m-+seah g src=+code=descriptor"bmit="renref">descriptor> mas< g src=right.png" alt=">>"> #L204ypid L204ypmit="retineyp> L204y>i204> m g src=+code=dstnpct"bmit="renref">dst_pct> m-+seah g src=+code=length"pmit="renref">length> m = g src=+code=pct"bmit="renref">pct> m-+seah g src=+code=length"pmit="renref">length> mas< g src=right.png" alt=">>"> #L205ypid L205ypmit="retineyp> L205y>i205> m g src=+code=dstnpct"bmit="renref">dst_pct> m-+seah g src=+code="pace_id"pmit="renref">"pace_id> m = g src=+code=pct"bmit="renref">pct> m-+seah g src=+code="pace_id"pmit="renref">"pace_id> mas< g src=right.png" alt=">>"> #L206ypid L206ypmit="retineyp> L206y>i206> m g src=+code=dstnpct"bmit="renref">dst_pct> m-+seah g src=+code=bit_width"pmit="renref">bit_width> m = g src=+code=pct"bmit="renref">pct> m-+seah g src=+code=bit_width"pmit="renref">bit_width> mas< g src=right.png" alt=">>"> #L207ypid L207ypmit="retineyp> L207y>i207> m g src=+code=dstnpct"bmit="renref">dst_pct> m-+seah g src=+code=bit_offse "pmit="renref">bit_offse > m = g src=+code=pct"bmit="renref">pct> m-+seah g src=+code=bit_offse "pmit="renref">bit_offse > mas< g src=right.png" alt=">>"> #L208ypid L208ypmit="retineyp> L208y>i208> m g src=+code=dstnpct"bmit="renref">dst_pct> m-+seah g src=+code=reserved"pmit="renref">reserved> m = g src=+code=pct"bmit="renref">pct> m-+seah g src=+code=reserved"pmit="renref">reserved> mas< g src=right.png" alt=">>"> #L209ypid L209ypmit="retineyp> L209y>i209> m g src=+code=dstnpct"bmit="renref">dst_pct> m-+seah g src=+code=addr>&ddr> m = g src=+code=pct"bmit="renref">pct> m-+seah g src=+code=addr>&ddr> mas< g src=right.png" alt=">>"> #L210ypid L210ypmit="retineyp> L210y>i210> m #L211ypid L211ypmit="retineyp> L211y>i211> m}s< g src=right.png" alt=">>"> #L212ypid L212ypmit="retineyp> L212y>i212> m"lxr_s int"> g src=+code=push_pxx_to_h rvi/a>"bmit="renref">push_pxx_to_h rvi/a>ro m(struct g src=+code=>_gt;">"pmit="renref">>_gt;">> m * g src=+code=_gtypmit="renref">_p>> m)s< g src=right.png" alt=">>"> #L213ypid L213ypmit="retineyp> L213y>i213> m{s< g src=right.png" alt=">>"> #L214ypid L214ypmit="retineyp> L214y>i214> m int"> g src=+code=re "pmit="renref">re > m = 0as< g src=right.png" alt=">>"> #L215ypid L215ypmit="retineyp> L215y>i215> m struct g src=+code=lt=_platcess_opypmit="renref">lt=_platcess_op> m g src=+code=opypmit="renref">op> m = {s< g src=right.png" alt=">>"> #L216ypid L216ypmit="retineyp> L216y>i216> m . g src=+code=cmd"pmit="renref">cmd> m = g src=+code=XENPF_set_gt;">npminfo"bmit="renref">XENPF_set_gt;">npminfo> m,s< g src=right.png" alt=">>"> #L217ypid L217ypmit="retineyp> L217y>i217> m . g src=+code=interface_ht.pioa"bmit="renref">interface_ht.pioa> m = g src=+code=XENPF_INTERFACE_VERSION"bmit="renref">XENPF_INTERFACE_VERSION> m,s< g src=right.png" alt=">>"> #L218ypid L218ypmit="retineyp> L218y>i218> m . g src=+code=u"bmit="renref">u> m. g src=+code=set_gminfo"bmit="renref">set_gminfo> m. g src=+code=id"pmit="renref">id> m = g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=>_id"pmit="renref">>_id> m,s< g src=right.png" alt=">>"> #L219ypid L219ypmit="retineyp> L219y>i219> m . g src=+code=u"bmit="renref">u> m. g src=+code=set_gminfo"bmit="renref">set_gminfo> m. g src=+code=> "bmit="renref">> > m = g src=+code=XEN_PM_PX"bmit="renref">XEN_PM_PX> m,s< g src=right.png" alt=">>"> #L220ypid L220ypmit="retineyp> L220y>i220> m }as< g src=right.png" alt=">>"> #L221ypid L221ypmit="retineyp> L221y>i221> m struct g src=+code=lt=_pt;">_percessance"bmit="renref">lt=_pt;">_percessance> m * g src=+code=dstnperc"bmit="renref">dstnperc> mas< g src=right.png" alt=">>"> #L222ypid L222ypmit="retineyp> L222y>i222> m struct g src=+code=lt=_pt;">_px"bmit="renref">lt=_pt;">_px> m * g src=+code=dstn"lxres"bmit="renref">dstn"lxres> m = g src=+code=NULL"bmit="renref">NULL> mas< g src=right.png" alt=">>"> #L223ypid L223ypmit="retineyp> L223y>i223> ms< g src=right.png" alt=">>"> #L224ypid L224ypmit="retineyp> L224y>i224> m g src=+code=dstnperc"bmit="renref">dstnperc> m = &ah g src=+code=opypmit="renref">op> m. g src=+code=u"bmit="renref">u> m. g src=+code=set_gminfo"bmit="renref">set_gminfo> m. g src=+code=perc"bmit="renref">perc> mas< g src=right.png" alt=">>"> #L225ypid L225ypmit="retineyp> L225y>i225> ms< g src=right.png" alt=">>"> #L226ypid L226ypmit="retineyp> L226y>i226> m g src=+code=dstnperc"bmit="renref">dstnperc> m-+seah g src=+code=platcess_limit"bmit="renref">platcess_limit> m = g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance_platcess_limit"bmit="renref">percessance_platcess_limit> mas< g src=right.png" alt=">>"> #L227ypid L227ypmit="retineyp> L227y>i227> m g src=+code=dstnperc"bmit="renref">dstnperc> m-+seah g src=+code=flags"bmit="renref">flags> m |= g src=+code=XEN_PX_PPC"bmit="renref">XEN_PX_PPC> mas< g src=right.png" alt=">>"> #L228ypid L228ypmit="retineyp> L228y>i228> m g src=+code=lt=_copy_pct_dataypmit="renref">lt=_copy_pct_dataro m(&a( g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance"bmit="renref">percessance> m-+seah g src=+code=control_registe>"bmit="renref">control_registe>> m),s< g src=right.png" alt=">>"> #L229ypid L229ypmit="retineyp> L229y>i229> m &ah g src=+code=dstnperc"bmit="renref">dstnperc> m-+seah g src=+code=control_registe>"bmit="renref">control_registe>> m)as< g src=right.png" alt=">>"> #L230ypid L230ypmit="retineyp> L230y>i230> m g src=+code=lt=_copy_pct_dataypmit="renref">lt=_copy_pct_dataro m(&a( g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance"bmit="renref">percessance> m-+seah g src=+code="lxrus_registe>"bmit="renref">"lxrus_registe>> m),s< g src=right.png" alt=">>"> #L231ypid L231ypmit="retineyp> L231y>i231> m &ah g src=+code=dstnperc"bmit="renref">dstnperc> m-+seah g src=+code="lxrus_registe>"bmit="renref">"lxrus_registe>> m)as< g src=right.png" alt=">>"> #L232ypid L232ypmit="retineyp> L232y>i232> m g src=+code=dstnperc"bmit="renref">dstnperc> m-+seah g src=+code=flags"bmit="renref">flags> m |= g src=+code=XEN_PX_PCT"bmit="renref">XEN_PX_PCT> mas< g src=right.png" alt=">>"> #L233ypid L233ypmit="retineyp> L233y>i233> m g src=+code=dstn"lxres"bmit="renref">dstn"lxres> m = g src=+code=xt=_copy_pss_dataypmit="renref">lt=_copy_pss_dataro m( g src=+code=_gtypmit="renref">_p>> m, g src=+code=dstnperc"bmit="renref">dstnperc> m)as< g src=right.png" alt=">>"> #L234ypid L234ypmit="retineyp> L234y>i234> m if (! g src=+code=IS_ERR_OR_NULL"bmit="renref">IS_ERR_OR_NULLro m( g src=+code=dstn"lxres"bmit="renref">dstn"lxres> m)) {s< g src=right.png" alt=">>"> #L235ypid L235ypmit="retineyp> L235y>i235> m g src=+code=set_xt=_guestnhandl "bmit="renref">"et_lt=_guestnhandl ro m( g src=+code=dstnperc"bmit="renref">dstnperc> m-+seah g src=+code="lxres"bmit="renref">"lxres> m, g src=+code=dstn"lxres"bmit="renref">dstn"lxres> m)as< g src=right.png" alt=">>"> #L236ypid L236ypmit="retineyp> L236y>i236> m g src=+code=dstnperc"bmit="renref">dstnperc> m-+seah g src=+code=flags"bmit="renref">flags> m |= g src=+code=XEN_PX_PSS"bmit="renref">XEN_PX_PSS> mas< g src=right.png" alt=">>"> #L237ypid L237ypmit="retineyp> L237y>i237> m }s< g src=right.png" alt=">>"> #L238ypid L238ypmit="retineyp> L238y>i238> m if (! g src=+code=xt=_copy_psd_dataypmit="renref">lt=_copy_psd_dataro m( g src=+code=_gtypmit="renref">_p>> m, g src=+code=dstnperc"bmit="renref">dstnperc> m))s< g src=right.png" alt=">>"> #L239ypid L239ypmit="retineyp> L239y>i239> m g src=+code=dstnperc"bmit="renref">dstnperc> m-+seah g src=+code=flags"bmit="renref">flags> m |= g src=+code=XEN_PX_PSD"bmit="renref">XEN_PX_PSD> mas< g src=right.png" alt=">>"> #L240ypid L240ypmit="retineyp> L240y>i240ro ms< g src=right.png" alt=">>"> #L241ypid L241ypmit="retineyp> L241y>i241> m if ( g src=+code=dstnperc"bmit="renref">dstnperc> m-+seah g src=+code=flags"bmit="renref">flags> m != ( g src=+code=XEN_PX_PSD"bmit="renref">XEN_PX_PSD> m | g src=+code=XEN_PX_PSS"bmit="renref">XEN_PX_PSS> m | g src=+code=XEN_PX_PCT"bmit="renref">XEN_PX_PCT> m | g src=+code=XEN_PX_PPC"bmit="renref">XEN_PX_PPC> m)) {s< g src=right.png" alt=">>"> #L242ypid L242ypmit="retineyp> L242y>i242> m h g src=+code=pr_wara"bmit="renref">pr_wararo m( g src=+code=DRV_NAME"bmit="renref">DRV_NAME> m onsubmit="restring">"ACPI CPU%u missing some P-"lxre data (%x), skipping.\n"hod="po,s< g src=right.png" alt=">>"> #L243ypid L243ypmit="retineyp> L243y>i243> m h g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=>_id"pmit="renref">>_id> m, g src=+code=dstnperc"bmit="renref">dstnperc> m-+seah g src=+code=flags"bmit="renref">flags> m)as< g src=right.png" alt=">>"> #L244ypid L244ypmit="retineyp> L244y>i244> m g src=+code=re "pmit="renref">re > m = - g src=+code=ENODEV"pmit="renref">ENODEV> mas< g src=right.png" alt=">>"> #L245ypid L245ypmit="retineyp> L245y>i245> m goto g src=+code=err_free"bmit="renref">err_free> mas< g src=right.png" alt=">>"> #L246ypid L246ypmit="retineyp> L246y>i246> m }s< g src=right.png" alt=">>"> #L247ypid L247ypmit="retineyp> L247y>i247ro ms< g src=right.png" alt=">>"> #L248ypid L248ypmit="retineyp> L248y>i248> m if (! g src=+code=no_h rcall"bmit="renref">no_h rcall> m)s< g src=right.png" alt=">>"> #L249ypid L249ypmit="retineyp> L249y>i249> m g src=+code=re "pmit="renref">re > m = g src=+code=HYPERVISOR_dom0_opypmit="renref">HYPERVISOR_dom0_opro m(&ah g src=+code=opypmit="renref">op> m)as< g src=right.png" alt=">>"> #L250ypid L250ypmit="retineyp> L250y>i250ro ms< g src=right.png" alt=">>"> #L251ypid L251ypmit="retineyp> L251y>i251> m if (! g src=+code=re "pmit="renref">re > m) {s< g src=right.png" alt=">>"> #L252ypid L252ypmit="retineyp> L252y>i252> m struct g src=+code=>_gt;">npercessance"bmit="renref">>_gt;">npercessance> m * g src=+code=perc"bmit="renref">perc> mas< g src=right.png" alt=">>"> #L253ypid L253ypmit="retineyp> L253y>i253> m unsigned int"> g src=+code=i"bmit="renref">iro mas< g src=right.png" alt=">>"> #L254ypid L254ypmit="retineyp> L254y>i254> ms< g src=right.png" alt=">>"> #L255ypid L255ypmit="retineyp> L255y>i255> m g src=+code=perc"bmit="renref">perc> m = g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance"bmit="renref">percessance> mas< g src=right.png" alt=">>"> #L256ypid L256ypmit="retineyp> L256y>i256> m h g src=+code=pr_debug"pmit="renref">pr_debugro m( onsubmit="restring">"ACPI CPU%u - P-"lxres uploaded.\n"hod="po, g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=>_id"pmit="renref">>_id> m)as< g src=right.png" alt=">>"> #L257ypid L257ypmit="retineyp> L257y>i257> m ces ( g src=+code=i"bmit="renref">iro m = 0; g src=+code=i"bmit="renref">iro m < g src=+code=perc"bmit="renref">perc> m-+seah g src=+code="lxre_coun "pmit="renref">"lxre_coun > ma g src=+code=i"bmit="renref">iro m++) {s< g src=right.png" alt=">>"> #L258ypid L258ypmit="retineyp> L258y>i258> m g src=+code=pr_debug"pmit="renref">pr_debugro m( onsubmit="restring">" %cP%d: %d MHz, %d mW, %d uS\n"hod="po,s< g src=right.png" alt=">>"> #L259ypid L259ypmit="retineyp> L259y>i259> m ( g src=+code=i"bmit="renref">iro m == g src=+code=perc"bmit="renref">perc> m-+seah g src=+code="lxre"pmit="renref">"lxrero m ? onsubmit="restring">'*'hod="po : onsubmit="restring">' 'hod="po), g src=+code=i"bmit="renref">iro m,s< g src=right.png" alt=">>"> #L260ypid L260ypmit="retineyp> L260y>i260> m ( g src=+code=u32ypmit="renref">u32> m) g src=+code=perc"bmit="renref">perc> m-+seah g src=+code="lxres"bmit="renref">"lxres> m[ g src=+code=i"bmit="renref">iro m]. g src=+code=core_frequency"bmit="renref">core_frequencyro m,s< g src=right.png" alt=">>"> #L261ypid L261ypmit="retineyp> L261y>i261> m ( g src=+code=u32ypmit="renref">u32> m) g src=+code=perc"bmit="renref">perc> m-+seah g src=+code="lxres"bmit="renref">"lxres> m[ g src=+code=i"bmit="renref">iro m]. g src=+code=power"pmit="renref">power> m,s< g src=right.png" alt=">>"> #L262ypid L262ypmit="retineyp> L262y>i262> m ( g src=+code=u32ypmit="renref">u32> m) g src=+code=perc"bmit="renref">perc> m-+seah g src=+code="lxres"bmit="renref">"lxres> m[ g src=+code=i"bmit="renref">iro m]. g src=+code=transi _latency"bmit="renref">transi _latency> m)as< g src=right.png" alt=">>"> #L263ypid L263ypmit="retineyp> L263y>i263> m }s< g src=right.png" alt=">>"> #L264ypid L264ypmit="retineyp> L264y>i264> m } else if ( g src=+code=re "pmit="renref">re > m !=t- g src=+code=EINVAL"bmit="renref">EINVAL> m)s< g src=right.png" alt=">>"> #L265ypid L265ypmit="retineyp> L265y>i265> m onsubmit="recommen ">/* EINVAL means the ACPI ID is incorrect - meaning the ACPIhod="pos< g src=right.png" alt=">>"> #L266ypid L266ypmit="retineyp> L266y>i266ro m onsubmit="recommen "> * table is srerencing a non-existing CPU - which csubhappenhod="pos< g src=right.png" alt=">>"> #L267ypid L267ypmit="retineyp> L267y>i267> m onsubmit="recommen "> * wi"h broken ACPI tables. */hod="pos< g src=right.png" alt=">>"> #L268ypid L268ypmit="retineyp> L268y>i268> m h g src=+code=pr_wara"bmit="renref">pr_wararo m( g src=+code=DRV_NAME"bmit="renref">DRV_NAME> m onsubmit="restring">"(_PXX): H rvi/a> erres (%d) ces ACPI CPU%u\n"hod="po,s< g src=right.png" alt=">>"> #L269ypid L269ypmit="retineyp> L269y>i269> m g src=+code=re "pmit="renref">re > m, g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=>_id"pmit="renref">>_id> m)as< g src=right.png" alt=">>"> #L270ypid L270ypmit="retineyp> L270y>i270ro m g src=+code=err_free"bmit="renref">err_free> m:s< g src=right.png" alt=">>"> #L271ypid L271ypmit="retineyp> L271y>i271> m if (! g src=+code=IS_ERR_OR_NULL"bmit="renref">IS_ERR_OR_NULLro m( g src=+code=dstn"lxres"bmit="renref">dstn"lxres> m))s< g src=right.png" alt=">>"> #L272ypid L272ypmit="retineyp> L272y>i272> m g src=+code=kfree"bmit="renref">kfreero m( g src=+code=dstn"lxres"bmit="renref">dstn"lxres> m)as< g src=right.png" alt=">>"> #L273ypid L273ypmit="retineyp> L273y>i273> ms< g src=right.png" alt=">>"> #L274ypid L274ypmit="retineyp> L274y>i274> m re > mas< g src=right.png" alt=">>"> #L275ypid L275ypmit="retineyp> L275y>i275> m}s< g src=right.png" alt=">>"> #L276ypid L276ypmit="retineyp> L276y>i276> m"lxr_s int"> g src=+code=upload_pm_dataypmit="renref">upload_pm_dataro m(struct g src=+code=>_gt;">"pmit="renref">>_gt;">> m * g src=+code=_gtypmit="renref">_p>> m)s< g src=right.png" alt=">>"> #L277ypid L277ypmit="retineyp> L277y>i277> m{s< g src=right.png" alt=">>"> #L278ypid L278ypmit="retineyp> L278y>i278> m int"> g src=+code=err"pmit="renref">errro m = 0as< g src=right.png" alt=">>"> #L279ypid L279ypmit="retineyp> L279y>i279ro ms< g src=right.png" alt=">>"> #L280ypid L280ypmit="retineyp> L280y>i280> m g src=+code=mutex_lock"pmit="renref">mutex_lockro m(&ah g src=+code=>_ids_mutex"pmit="renref">>_ids_mutex> m)as< g src=right.png" alt=">>"> #L281ypid L281ypmit="retineyp> L281y>i281> m if ( g src=+code=__testnand_set_bit"bmit="renref">__testnand_set_bitro m( g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=>_id"pmit="renref">>_id> m, g src=+code=>_ids_done"bmit="renref">>_ids_done> m)) {s< g src=right.png" alt=">>"> #L282ypid L282ypmit="retineyp> L282y>i282> m g src=+code=mutex_unlock"pmit="renref">mutex_unlockro m(&ah g src=+code=>_ids_mutex"pmit="renref">>_ids_mutex> m)as< g src=right.png" alt=">>"> #L283ypid L283ypmit="retineyp> L283y>i283> m EBUSY> mas< g src=right.png" alt=">>"> #L284ypid L284ypmit="retineyp> L284y>i284> m }s< g src=right.png" alt=">>"> #L285ypid L285ypmit="retineyp> L285y>i285> m if ( g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=flags"bmit="renref">flags> m. g src=+code=power"pmit="renref">power> m)s< g src=right.png" alt=">>"> #L286ypid L286ypmit="retineyp> L286y>i286> m > g src=+code=err"pmit="renref">errro m = g src=+code=push_cxx_to_h rvi/a>"bmit="renref">push_cxx_to_h rvi/a>ro m( g src=+code=_gtypmit="renref">_p>> m)as< g src=right.png" alt=">>"> #L287ypid L287ypmit="retineyp> L287y>i287ro ms< g src=right.png" alt=">>"> #L288ypid L288ypmit="retineyp> L288y>i288> m if ( g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance"bmit="renref">percessance> m &a&a g src=+code=_gtypmit="renref">_p>> m-+seah g src=+code=percessance"bmit="renref">percessance> m-+seah g src=+code="lxres"bmit="renref">"lxres> m)s< g src=right.png" alt=">>"> #L289ypid L289ypmit="retineyp> L289y>i289> m > g src=+code=err"pmit="renref">errro m |= g src=+code=push_pxx_to_h rvi/a>"bmit="renref">push_pxx_to_h rvi/a>ro m( g src=+code=_gtypmit="renref">_p>> m)as< g src=right.png" alt=">>"> #L290ypid L290ypmit="retineyp> L290y>i290ro ms< g src=right.png" alt=">>"> #L291ypid L291ypmit="retineyp> L291y>i291> m g src=+code=mutex_unlock"pmit="renref">mutex_unlockro m(&ah g src=+code=>_ids_mutex"pmit="renref">>_ids_mutex> m)as< g src=right.png" alt=">>"> #L292ypid L292ypmit="retineyp> L292y>i292> m errro mas< g src=right.png" alt=">>"> #L293ypid L293ypmit="retineyp> L293y>i293> m}s< g src=right.png" alt=">>"> #L294ypid L294ypmit="retineyp> L294y>i294> m"lxr_s unsigned int"> g src=+code=__init"bmit="renref">__init> m g src=+code=get_max_>_id"pmit="renref">get_max_>_idro m(void)s< g src=right.png" alt=">>"> #L295ypid L295ypmit="retineyp> L295y>i295> m{s< g src=right.png" alt=">>"> #L296ypid L296ypmit="retineyp> L296y>i296> m struct g src=+code=lt=pf_pcpuinfo"bmit="renref">lt=pf_pcpuinfo> m * g src=+code=info"bmit="renref">info> mas< g src=right.png" alt=">>"> #L297ypid L297ypmit="retineyp> L297y>i297> m struct g src=+code=lt=_platcess_opypmit="renref">lt=_platcess_op> m g src=+code=opypmit="renref">op> m = {s< g src=right.png" alt=">>"> #L298ypid L298ypmit="retineyp> L298y>i298> m . g src=+code=cmd"pmit="renref">cmd> m = g src=+code=XENPF_get_cpuinfo"bmit="renref">XENPF_get_cpuinfo> m,s< g src=right.png" alt=">>"> #L299ypid L299ypmit="retineyp> L299y>i299> m . g src=+code=interface_ht.pioa"bmit="renref">interface_ht.pioa> m = g src=+code=XENPF_INTERFACE_VERSION"bmit="renref">XENPF_INTERFACE_VERSION> m,s< g src=right.png" alt=">>"> #L300ypid L300ypmit="retineyp> L300y>i300> m }as< g src=right.png" alt=">>"> #L301ypid L301ypmit="retineyp> L301y>i301> m int"> g src=+code=re "pmit="renref">re > m = 0as< g src=right.png" alt=">>"> #L302ypid L302ypmit="retineyp> L302y>i302> m unsigned int"> g src=+code=i"bmit="renref">iro m, g src=+code=it=t_cpu"bmit="renref">it=t_cpuro m, g src=+code=max_>_id"pmit="renref">max_>_idro m = 0as< g src=right.png" alt=">>"> #L303ypid L303ypmit="retineyp> L303y>i303> ms< g src=right.png" alt=">>"> #L304ypid L304ypmit="retineyp> L304y>i304> m g src=+code=info"bmit="renref">info> m = &ah g src=+code=opypmit="renref">op> m. g src=+code=u"bmit="renref">u> m. g src=+code=pcpu_info"bmit="renref">pcpu_info> mas< g src=right.png" alt=">>"> #L305ypid L305ypmit="retineyp> L305y>i305> m g src=+code=info"bmit="renref">info> m-+seah g src=+code=lt=_cpuid"pmit="renref">lt=_cpuidro m = 0as< g src=right.png" alt=">>"> #L306ypid L306ypmit="retineyp> L306y>i306> ms< g src=right.png" alt=">>"> #L307ypid L307ypmit="retineyp> L307y>i307> m g src=+code=re "pmit="renref">re > m = g src=+code=HYPERVISOR_dom0_opypmit="renref">HYPERVISOR_dom0_opro m(&ah g src=+code=opypmit="renref">op> m)as< g src=right.png" alt=">>"> #L308ypid L308ypmit="retineyp> L308y>i308> m if ( g src=+code=re "pmit="renref">re > m)s< g src=right.png" alt=">>"> #L309ypid L309ypmit="retineyp> L309y>i309> m NR_CPUS> mas< g src=right.png" alt=">>"> #L310ypid L310ypmit="retineyp> L310y>i310ro ms< g src=right.png" alt=">>"> #L311ypid L311ypmit="retineyp> L311y>i311> m onsubmit="recommen ">/* The max_present"is the s irregardl> #L312ypid L312ypmit="retineyp> L312y>i312> m g src=+code=it=t_cpu"bmit="renref">it=t_cpuro m = g src=+code=opypmit="renref">op> m. g src=+code=u"bmit="renref">u> m. g src=+code=pcpu_info"bmit="renref">pcpu_info> m. g src=+code=max_present"pmit="renref">max_present> mas< g src=right.png" alt=">>"> #L313ypid L313ypmit="retineyp> L313y>i313> m ces ( g src=+code=i"bmit="renref">iro m = 0; g src=+code=i"bmit="renref">iro m <= g src=+code=it=t_cpu"bmit="renref">it=t_cpuro ma g src=+code=i"bmit="renref">iro m++) {s< g src=right.png" alt=">>"> #L314ypid L314ypmit="retineyp> L314y>i314> m g src=+code=info"bmit="renref">info> m-+seah g src=+code=lt=_cpuid"pmit="renref">lt=_cpuidro m = g src=+code=i"bmit="renref">iro mas< g src=right.png" alt=">>"> #L315ypid L315ypmit="retineyp> L315y>i315> m g src=+code=re "pmit="renref">re > m = g src=+code=HYPERVISOR_dom0_opypmit="renref">HYPERVISOR_dom0_opro m(&ah g src=+code=opypmit="renref">op> m)as< g src=right.png" alt=">>"> #L316ypid L316ypmit="retineyp> L316y>i316> m if ( g src=+code=re "pmit="renref">re > m)s< g src=right.png" alt=">>"> #L317ypid L317ypmit="retineyp> L317y>i317> m continueas< g src=right.png" alt=">>"> #L318ypid L318ypmit="retineyp> L318y>i318> m g src=+code=max_>_id"pmit="renref">max_>_idro m = g src=+code=max"pmit="renref">maxro m( g src=+code=info"bmit="renref">info> m-+seah g src=+code=>_id"pmit="renref">>_id> m, g src=+code=max_>_id"pmit="renref">max_>_idro m)as< g src=right.png" alt=">>"> #L319ypid L319ypmit="retineyp> L319y>i319> m }s< g src=right.png" alt=">>"> #L320ypid L320ypmit="retineyp> L320y>i320> m g src=+code=max_>_id"pmit="renref">max_>_idro m *= 2; onsubmit="recommen ">/* Slack ces CPU hotplug support. */hod="pos< g src=right.png" alt=">>"> #L321ypid L321ypmit="retineyp> L321y>i321> m g src=+code=pr_debug"pmit="renref">pr_debugro m( g src=+code=DRV_NAME"bmit="renref">DRV_NAME> m onsubmit="restring">"Max ACPI ID: %u\n"hod="po, g src=+code=max_>_id"pmit="renref">max_>_idro m)as< g src=right.png" alt=">>"> #L322ypid L322ypmit="retineyp> L322y>i322> m max_>_idro mas< g src=right.png" alt=">>"> #L323ypid L323ypmit="retineyp> L323y>i323> m}s< g src=right.png" alt=">>"> #L324ypid L324ypmit="retineyp> L324y>i324> m onsubmit="recommen ">/*hod="pos< g src=right.png" alt=">>"> #L325ypid L325ypmit="retineyp> L325y>i325ro m onsubmit="recommen "> * The read_>_id and check_>_ids are there to support the Xeuhod="pos< g src=right.png" alt=">>"> #L326ypid L326ypmit="retineyp> L326y>i326ro m onsubmit="recommen "> * oddity of virtual CPUs !=tphysical CPUs in the initial domaia.hod="pos< g src=right.png" alt=">>"> #L327ypid L327ypmit="retineyp> L327y>i327> m onsubmit="recommen "> * The user csubsupply 'lt=_max_vcpus=X' on the Xeubh rvi/a> tinehod="pos< g src=right.png" alt=">>"> #L328ypid L328ypmit="retineyp> L328y>i328> m onsubmit="recommen "> * which will band the amoun of CPUs the initial domaia csubsee.hod="pos< g src=right.png" alt=">>"> #L329ypid L329ypmit="retineyp> L329y>i329> m onsubmit="recommen "> * In general that"is OK, except it plays havoc wi"h any of thehod="pos< g src=right.png" alt=">>"> #L330ypid L330ypmit="retineyp> L330y>i330> m onsubmit="recommen "> * ces_each_[present|ontine]_cpu macros which are banded to the virtualhod="pos< g src=right.png" alt=">>"> #L331ypid L331ypmit="retineyp> L331y>i331> m onsubmit="recommen "> * CPU amoun .hod="pos< g src=right.png" alt=">>"> #L332ypid L332ypmit="retineyp> L332y>i332ro m onsubmit="recommen "> */hod="pos< g src=right.png" alt=">>"> #L333ypid L333ypmit="retineyp> L333y>i333> m"lxr_s h g src=+code=>_"lxrus"pmit="renref">>_"lxrus> m g src=+code=__init"bmit="renref">__init> ms< g src=right.png" alt=">>"> #L334ypid L334ypmit="retineyp> L334y>i334> m g src=+code=read_>_id"pmit="renref">read_>_idro m( g src=+code=>_handl "bmit="renref">>_handl > m g src=+code=handl "bmit="renref">handl > m, g src=+code=u32ypmit="renref">u32> m g src=+code=ivl"bmit="renref">ivl> m, void * g src=+code=context"bmit="renref">context> m, void ** g src=+code=rv"pmit="renref">rv> m)s< g src=right.png" alt=">>"> #L335ypid L335ypmit="retineyp> L335y>i335> m{s< g src=right.png" alt=">>"> #L336ypid L336ypmit="retineyp> L336y>i336> m g src=+code=u32ypmit="renref">u32> m g src=+code=>_id"pmit="renref">>_id> mas< g src=right.png" alt=">>"> #L337ypid L337ypmit="retineyp> L337y>i337> m g src=+code=>_"lxrus"pmit="renref">>_"lxrus> m g src=+code="lxrus"pmit="renref">"lxrus> mas< g src=right.png" alt=">>"> #L338ypid L338ypmit="retineyp> L338y>i338> m g src=+code=>_object_> "bmit="renref">>_object_> > m g src=+code=>_> "bmit="renref">>_> > mas< g src=right.png" alt=">>"> #L339ypid L339ypmit="retineyp> L339y>i339> m unsigned long long g src=+code=tmpypmit="renref">tmp> mas< g src=right.png" alt=">>"> #L340ypid L340ypmit="retineyp> L340y>i340> m uniopt g src=+code=>_object"bmit="renref">>_object> m g src=+code=object"bmit="renref">object> m = { 0 }as< g src=right.png" alt=">>"> #L341ypid L341ypmit="retineyp> L341y>i341> m struct g src=+code=>_buffe>"bmit="renref">>_buffe>> m g src=+code=buffe>"bmit="renref">buffe>> m = { sizeof(uniopt g src=+code=>_object"bmit="renref">>_object> m), &ah g src=+code=object"bmit="renref">object> m }as< g src=right.png" alt=">>"> #L342ypid L342ypmit="retineyp> L342y>i342> m g src=+code=>_io_addr>>_io_addr> m g src=+code=pblk"pmit="renref">pblkro m = 0as< g src=right.png" alt=">>"> #L343ypid L343ypmit="retineyp> L343y>i343> ms< g src=right.png" alt=">>"> #L344ypid L344ypmit="retineyp> L344y>i344> m g src=+code="lxrus"pmit="renref">"lxrus> m = g src=+code=>_get_> "bmit="renref">>_get_> ro m( g src=+code=handl "bmit="renref">handl > m, &ah g src=+code=>_> "bmit="renref">>_> > m)as< g src=right.png" alt=">>"> #L345ypid L345ypmit="retineyp> L345y>i345> m if ( g src=+code=ACPI_FAILURE"bmit="renref">ACPI_FAILUREro m( g src=+code="lxrus"pmit="renref">"lxrus> m))s< g src=right.png" alt=">>"> #L346ypid L346ypmit="retineyp> L346y>i346> m AE_OK> mas< g src=right.png" alt=">>"> #L347ypid L347ypmit="retineyp> L347y>i347ro ms< g src=right.png" alt=">>"> #L348ypid L348ypmit="retineyp> L348y>i348> m swi"ch ( g src=+code=>_> "bmit="renref">>_> > m) {s< g src=right.png" alt=">>"> #L349ypid L349ypmit="retineyp> L349y>i349> m caset g src=+code=ACPI_TYPE_PROCESSOR"bmit="renref">ACPI_TYPE_PROCESSOR> m:s< g src=right.png" alt=">>"> #L350ypid L350ypmit="retineyp> L350y>i350> m g src=+code="lxrus"pmit="renref">"lxrus> m = g src=+code=>_evaluxre_object"bmit="renref">>_evaluxre_objectro m( g src=+code=handl "bmit="renref">handl > m, g src=+code=NULL"bmit="renref">NULL> m, g src=+code=NULL"bmit="renref">NULL> m, &ah g src=+code=buffe>"bmit="renref">buffe>> m)as< g src=right.png" alt=">>"> #L351ypid L351ypmit="retineyp> L351y>i351> m if ( g src=+code=ACPI_FAILURE"bmit="renref">ACPI_FAILUREro m( g src=+code="lxrus"pmit="renref">"lxrus> m))s< g src=right.png" alt=">>"> #L352ypid L352ypmit="retineyp> L352y>i352> m AE_OK> mas< g src=right.png" alt=">>"> #L353ypid L353ypmit="retineyp> L353y>i353> m g src=+code=>_id"pmit="renref">>_id> m = g src=+code=object"bmit="renref">object> m. g src=+code=pt;">"pmit="renref">gt;">> m. g src=+code=pt;"_id"pmit="renref">pt;"_id> mas< g src=right.png" alt=">>"> #L354ypid L354ypmit="retineyp> L354y>i354> m g src=+code=pblk"pmit="renref">pblkro m = g src=+code=object"bmit="renref">object> m. g src=+code=pt;">"pmit="renref">gt;">> m. g src=+code=pblk_addr>pblk_addr> mas< g src=right.png" alt=">>"> #L355ypid L355ypmit="retineyp> L355y>i355> m breakas< g src=right.png" alt=">>"> #L356ypid L356ypmit="retineyp> L356y>i356> m caset g src=+code=ACPI_TYPE_DEVICE"bmit="renref">ACPI_TYPE_DEVICE> m:s< g src=right.png" alt=">>"> #L357ypid L357ypmit="retineyp> L357y>i357> m g src=+code="lxrus"pmit="renref">"lxrus> m = g src=+code=>_evaluxre_intege>"bmit="renref">>_evaluxre_intege>ro m( g src=+code=handl "bmit="renref">handl > m, onsubmit="restring">"_UID"hod="po, g src=+code=NULL"bmit="renref">NULL> m, &ah g src=+code=tmpypmit="renref">tmp> m)as< g src=right.png" alt=">>"> #L358ypid L358ypmit="retineyp> L358y>i358> m if ( g src=+code=ACPI_FAILURE"bmit="renref">ACPI_FAILUREro m( g src=+code="lxrus"pmit="renref">"lxrus> m))s< g src=right.png" alt=">>"> #L359ypid L359ypmit="retineyp> L359y>i359> m AE_OK> mas< g src=right.png" alt=">>"> #L360ypid L360ypmit="retineyp> L360y>i360> m g src=+code=>_id"pmit="renref">>_id> m = g src=+code=tmpypmit="renref">tmp> mas< g src=right.png" alt=">>"> #L361ypid L361ypmit="retineyp> L361y>i361> m breakas< g src=right.png" alt=">>"> #L362ypid L362ypmit="retineyp> L362y>i362> m default:s< g src=right.png" alt=">>"> #L363ypid L363ypmit="retineyp> L363y>i363> m AE_OK> mas< g src=right.png" alt=">>"> #L364ypid L364ypmit="retineyp> L364y>i364> m }s< g src=right.png" alt=">>"> #L365ypid L365ypmit="retineyp> L365y>i365> m onsubmit="recommen ">/* There are more ACPI Pt;"> objects thsubin x2APIC a> MADT.hod="pos< g src=right.png" alt=">>"> #L366ypid L366ypmit="retineyp> L366y>i366ro m onsubmit="recommen "> * This csubhappen wi"h incorrect ACPI SSDT declera s. */hod="pos< g src=right.png" alt=">>"> #L367ypid L367ypmit="retineyp> L367y>i367> m if ( g src=+code=>_id"pmit="renref">>_id> m +seat g src=+code=nr_>_bits"pmit="renref">nr_>_bits> m) {s< g src=right.png" alt=">>"> #L368ypid L368ypmit="retineyp> L368y>i368> m h g src=+code=pr_debug"pmit="renref">pr_debugro m( g src=+code=DRV_NAME"bmit="renref">DRV_NAME> m onsubmit="restring">"We only have %u, trying to set %u\n"hod="po,s< g src=right.png" alt=">>"> #L369ypid L369ypmit="retineyp> L369y>i369> m h g src=+code=nr_>_bits"pmit="renref">nr_>_bits> m, g src=+code=>_id"pmit="renref">>_id> m)as< g src=right.png" alt=">>"> #L370ypid L370ypmit="retineyp> L370y>i370> m AE_OK> mas< g src=right.png" alt=">>"> #L371ypid L371ypmit="retineyp> L371y>i371> m }s< g src=right.png" alt=">>"> #L372ypid L372ypmit="retineyp> L372y>i372> m onsubmit="recommen ">/* OK, There is a ACPI Pt;"> object */hod="pos< g src=right.png" alt=">>"> #L373ypid L373ypmit="retineyp> L373y>i373> m g src=+code=__set_bit"bmit="renref">__set_bitro m( g src=+code=>_id"pmit="renref">>_id> m, g src=+code=>_id_present"pmit="renref">>_id_present> m)as< g src=right.png" alt=">>"> #L374ypid L374ypmit="retineyp> L374y>i374> ms< g src=right.png" alt=">>"> #L375ypid L375ypmit="retineyp> L375y>i375> m g src=+code=pr_debug"pmit="renref">pr_debugro m( g src=+code=DRV_NAME"bmit="renref">DRV_NAME> m onsubmit="restring">"ACPI CPU%u w/ PBLK:0x%lx\n"hod="po, g src=+code=>_id"pmit="renref">>_id> m,s< g src=right.png" alt=">>"> #L376ypid L376ypmit="retineyp> L376y>i376> m (unsigned long) g src=+code=pblk"pmit="renref">pblkro m)as< g src=right.png" alt=">>"> #L377ypid L377ypmit="retineyp> L377y>i377ro ms< g src=right.png" alt=">>"> #L378ypid L378ypmit="retineyp> L378y>i378> m g src=+code="lxrus"pmit="renref">"lxrus> m = g src=+code=>_evaluxre_object"bmit="renref">>_evaluxre_objectro m( g src=+code=handl "bmit="renref">handl > m, onsubmit="restring">"_CST"hod="po, g src=+code=NULL"bmit="renref">NULL> m, &ah g src=+code=buffe>"bmit="renref">buffe>> m)as< g src=right.png" alt=">>"> #L379ypid L379ypmit="retineyp> L379y>i379> m if ( g src=+code=ACPI_FAILURE"bmit="renref">ACPI_FAILUREro m( g src=+code="lxrus"pmit="renref">"lxrus> m)) {s< g src=right.png" alt=">>"> #L380ypid L380ypmit="retineyp> L380y>i380> m if (! g src=+code=pblk"pmit="renref">pblkro m)s< g src=right.png" alt=">>"> #L381ypid L381ypmit="retineyp> L381y>i381> m AE_OK> mas< g src=right.png" alt=">>"> #L382ypid L382ypmit="retineyp> L382y>i382> m }s< g src=right.png" alt=">>"> #L383ypid L383ypmit="retineyp> L383y>i383> m onsubmit="recommen ">/* .. and it has a C-"lxre */hod="pos< g src=right.png" alt=">>"> #L384ypid L384ypmit="retineyp> L384y>i384> m g src=+code=__set_bit"bmit="renref">__set_bitro m( g src=+code=>_id"pmit="renref">>_id> m, g src=+code=>_id_cstnpresent"pmit="renref">>_id_cstnpresent> m)as< g src=right.png" alt=">>"> #L385ypid L385ypmit="retineyp> L385y>i385> ms< g src=right.png" alt=">>"> #L386ypid L386ypmit="retineyp> L386y>i386> m AE_OK> mas< g src=right.png" alt=">>"> #L387ypid L387ypmit="retineyp> L387y>i387ro m}s< g src=right.png" alt=">>"> #L388ypid L388ypmit="retineyp> L388y>i388> m"lxr_s int"> g src=+code=__init"bmit="renref">__init> m g src=+code=check_>_ids"bmit="renref">check_>_idsro m(struct g src=+code=>_gt;">"pmit="renref">>_gt;">> m * g src=+code=pr_backupypmit="renref">pr_backupro m)s< g src=right.png" alt=">>"> #L389ypid L389ypmit="retineyp> L389y>i389> m{s< g src=right.png" alt=">>"> #L390ypid L390ypmit="retineyp> L390y>i390ro ms< g src=right.png" alt=">>"> #L391ypid L391ypmit="retineyp> L391y>i391> m if (! g src=+code=pr_backupypmit="renref">pr_backupro m)s< g src=right.png" alt=">>"> #L392ypid L392ypmit="retineyp> L392y>i392> m ENODEV> mas< g src=right.png" alt=">>"> #L393ypid L393ypmit="retineyp> L393y>i393> ms< g src=right.png" alt=">>"> #L394ypid L394ypmit="retineyp> L394y>i394> m onsubmit="recommen ">/* All ontine CPUs have been gt;"> #L395ypid L395ypmit="retineyp> L395y>i395ro m onsubmit="recommen "> * whetherbin fact "ontine CPUs" ==tphysical CPUs.hod="pos< g src=right.png" alt=">>"> #L396ypid L396ypmit="retineyp> L396y>i396ro m onsubmit="recommen "> */hod="pos< g src=right.png" alt=">>"> #L397ypid L397ypmit="retineyp> L397y>i397> m g src=+code=>_id_present"pmit="renref">>_id_present> m = g src=+code=kcalloc"pmit="renref">kcallocro m( g src=+code=BITS_TO_LONGS"bmit="renref">BITS_TO_LONGSro m( g src=+code=nr_>_bits"pmit="renref">nr_>_bits> m), sizeof(unsigned long), g src=+code=GFP_KERNEL"bmit="renref">GFP_KERNEL> m)as< g src=right.png" alt=">>"> #L398ypid L398ypmit="retineyp> L398y>i398> m if (! g src=+code=>_id_present"pmit="renref">>_id_present> m)s< g src=right.png" alt=">>"> #L399ypid L399ypmit="retineyp> L399y>i399> m ENOMEM> mas< g src=right.png" alt=">>"> #L400ypid L400ypmit="retineyp> L400y>i400ro ms< g src=right.png" alt=">>"> #L401ypid L401ypmit="retineyp> L401y>i401> m g src=+code=>_id_cstnpresent"pmit="renref">>_id_cstnpresent> m = g src=+code=kcalloc"pmit="renref">kcallocro m( g src=+code=BITS_TO_LONGS"bmit="renref">BITS_TO_LONGSro m( g src=+code=nr_>_bits"pmit="renref">nr_>_bits> m), sizeof(unsigned long), g src=+code=GFP_KERNEL"bmit="renref">GFP_KERNEL> m)as< g src=right.png" alt=">>"> #L402ypid L402ypmit="retineyp> L402y>i402> m if (! g src=+code=>_id_cstnpresent"pmit="renref">>_id_cstnpresent> m) {s< g src=right.png" alt=">>"> #L403ypid L403ypmit="retineyp> L403y>i403> m g src=+code=kfree"bmit="renref">kfreero m( g src=+code=>_id_present"pmit="renref">>_id_present> m)as< g src=right.png" alt=">>"> #L404ypid L404ypmit="retineyp> L404y>i404> m ENOMEM> mas< g src=right.png" alt=">>"> #L405ypid L405ypmit="retineyp> L405y>i405> m }s< g src=right.png" alt=">>"> #L406ypid L406ypmit="retineyp> L406y>i406> ms< g src=right.png" alt=">>"> #L407ypid L407ypmit="retineyp> L407y>i407> m g src=+code=>_walk_> d="ce"bmit="renref">>_walk_> d="cero m( g src=+code=ACPI_TYPE_PROCESSOR"bmit="renref">ACPI_TYPE_PROCESSOR> m, g src=+code=ACPI_ROOT_OBJECT"bmit="renref">ACPI_ROOT_OBJECT> m,s< g src=right.png" alt=">>"> #L408ypid L408ypmit="retineyp> L408y>i408> m g src=+code=ACPI_UINT32_MAX"bmit="renref">ACPI_UINT32_MAX> m,s< g src=right.png" alt=">>"> #L409ypid L409ypmit="retineyp> L409y>i409> m g src=+code=read_>_id"pmit="renref">read_>_idro m, g src=+code=NULL"bmit="renref">NULL> m, g src=+code=NULL"bmit="renref">NULL> m, g src=+code=NULL"bmit="renref">NULL> m)as< g src=right.png" alt=">>"> #L410ypid L410ypmit="retineyp> L410y>i410> m g src=+code=>_get_devices"bmit="renref">>_get_devicesro m( onsubmit="restring">"ACPI0007"hod="po, g src=+code=read_>_id"pmit="renref">read_>_idro m, g src=+code=NULL"bmit="renref">NULL> m, g src=+code=NULL"bmit="renref">NULL> m)as< g src=right.png" alt=">>"> #L411ypid L411ypmit="retineyp> L411y>i411> ms< g src=right.png" alt=">>"> #L412ypid L412ypmit="retineyp> L412y>i412> m if (! g src=+code=bitmap_equal"bmit="renref">bitmap_equalro m( g src=+code=>_id_present"pmit="renref">>_id_present> m, g src=+code=>_ids_done"bmit="renref">>_ids_done> m, g src=+code=nr_>_bits"pmit="renref">nr_>_bits> m)) {s< g src=right.png" alt=">>"> #L413ypid L413ypmit="retineyp> L413y>i413> m unsigned int"> g src=+code=i"bmit="renref">iro mas< g src=right.png" alt=">>"> #L414ypid L414ypmit="retineyp> L414y>i414> m g src=+code=ces_each_set_bit"bmit="renref">ces_each_set_bitro m( g src=+code=i"bmit="renref">iro m, g src=+code=>_id_present"pmit="renref">>_id_present> m, g src=+code=nr_>_bits"pmit="renref">nr_>_bits> m) {s< g src=right.png" alt=">>"> #L415ypid L415ypmit="retineyp> L415y>i415> m g src=+code=pr_backupypmit="renref">pr_backupro m-+seah g src=+code=>_id"pmit="renref">>_id> m = g src=+code=i"bmit="renref">iro mas< g src=right.png" alt=">>"> #L416ypid L416ypmit="retineyp> L416y>i416> m onsubmit="recommen ">/* Mask out C-"lxres if there are no _CST a> PBLK */hod="pos< g src=right.png" alt=">>"> #L417ypid L417ypmit="retineyp> L417y>i417> m g src=+code=pr_backupypmit="renref">pr_backupro m-+seah g src=+code=flags"bmit="renref">flags> m. g src=+code=power"pmit="renref">power> m = g src=+code=testnbit"bmit="renref">testnbitro m( g src=+code=i"bmit="renref">iro m, g src=+code=>_id_cstnpresent"pmit="renref">>_id_cstnpresent> m)as< g src=right.png" alt=">>"> #L418ypid L418ypmit="retineyp> L418y>i418> m (void) g src=+code=upload_pm_dataypmit="renref">upload_pm_dataro m( g src=+code=pr_backupypmit="renref">pr_backupro m)as< g src=right.png" alt=">>"> #L419ypid L419ypmit="retineyp> L419y>i419> m }s< g src=right.png" alt=">>"> #L420ypid L420ypmit="retineyp> L420y>i420> m }s< g src=right.png" alt=">>"> #L421ypid L421ypmit="retineyp> L421y>i421> m g src=+code=kfree"bmit="renref">kfreero m( g src=+code=>_id_present"pmit="renref">>_id_present> m)as< g src=right.png" alt=">>"> #L422ypid L422ypmit="retineyp> L422y>i422> m g src=+code=>_id_present"pmit="renref">>_id_present> m = g src=+code=NULL"bmit="renref">NULL> mas< g src=right.png" alt=">>"> #L423ypid L423ypmit="retineyp> L423y>i423> m g src=+code=kfree"bmit="renref">kfreero m( g src=+code=>_id_cstnpresent"pmit="renref">>_id_cstnpresent> m)as< g src=right.png" alt=">>"> #L424ypid L424ypmit="retineyp> L424y>i424> m g src=+code=>_id_cstnpresent"pmit="renref">>_id_cstnpresent> m = g src=+code=NULL"bmit="renref">NULL> mas< g src=right.png" alt=">>"> #L425ypid L425ypmit="retineyp> L425y>i425> m #L426ypid L426ypmit="retineyp> L426y>i426ro m}s< g src=right.png" alt=">>"> #L427ypid L427ypmit="retineyp> L427y>i427> m"lxr_s int"> g src=+code=__init"bmit="renref">__init> m g src=+code=check_prereq"bmit="renref">check_prereqro m(void)s< g src=right.png" alt=">>"> #L428ypid L428ypmit="retineyp> L428y>i428> m{s< g src=right.png" alt=">>"> #L429ypid L429ypmit="retineyp> L429y>i429> m struct g src=+code=cpuinfo_x86ypmit="renref">cpuinfo_x86> m * g src=+code=c"pmit="renref">c> m = &ah g src=+code=cpu_dataypmit="renref">cpu_dataro m(0)as< g src=right.png" alt=">>"> #L430ypid L430ypmit="retineyp> L430y>i430ro ms< g src=right.png" alt=">>"> #L431ypid L431ypmit="retineyp> L431y>i431> m if (! g src=+code=lt=_initial_domaiaypmit="renref">lt=_initial_domaiaro m())s< g src=right.png" alt=">>"> #L432ypid L432ypmit="retineyp> L432y>i432> m ENODEV> mas< g src=right.png" alt=">>"> #L433ypid L433ypmit="retineyp> L433y>i433> ms< g src=right.png" alt=">>"> #L434ypid L434ypmit="retineyp> L434y>i434> m if (! g src=+code=>_gbl_FADT"bmit="renref">>_gbl_FADT> m. g src=+code=smi_command"pmit="renref">smi_command> m)s< g src=right.png" alt=">>"> #L435ypid L435ypmit="retineyp> L435y>i435> m ENODEV> mas< g src=right.png" alt=">>"> #L436ypid L436ypmit="retineyp> L436y>i436> ms< g src=right.png" alt=">>"> #L437ypid L437ypmit="retineyp> L437y>i437> m if ( g src=+code=c"pmit="renref">c> m-+seah g src=+code=l86_venda>"pmit="renref">l86_venda>> m == g src=+code=X86_VENDOR_INTEL"bmit="renref">X86_VENDOR_INTEL> m) {s< g src=right.png" alt=">>"> #L438ypid L438ypmit="retineyp> L438y>i438> m if (! g src=+code=cpu_has"bmit="renref">cpu_hasro m( g src=+code=c"pmit="renref">c> m, g src=+code=X86_FEATURE_EST"bmit="renref">X86_FEATURE_EST> m))s< g src=right.png" alt=">>"> #L439ypid L439ypmit="retineyp> L439y>i439> m ENODEV> mas< g src=right.png" alt=">>"> #L440ypid L440ypmit="retineyp> L440y>i440ro ms< g src=right.png" alt=">>"> #L441ypid L441ypmit="retineyp> L441y>i441> m #L442ypid L442ypmit="retineyp> L442y>i442> m }s< g src=right.png" alt=">>"> #L443ypid L443ypmit="retineyp> L443y>i443> m if ( g src=+code=c"pmit="renref">c> m-+seah g src=+code=l86_venda>"pmit="renref">l86_venda>> m == g src=+code=X86_VENDOR_AMD"bmit="renref">X86_VENDOR_AMD> m) {s< g src=right.png" alt=">>"> #L444ypid L444ypmit="retineyp> L444y>i444> m onsubmit="recommen ">/* Copied from powernow-k8.h, csu't include ../cpufreq/powernowhod="pos< g src=right.png" alt=">>"> #L445ypid L445ypmit="retineyp> L445y>i445ro m onsubmit="recommen "> * as we get compile warnings ces the slxr_s func s.hod="pos< g src=right.png" alt=">>"> #L446ypid L446ypmit="retineyp> L446y>i446ro m onsubmit="recommen "> */hod="pos< g src=right.png" alt=">>"> #L447ypid L447ypmit="retineyp> L447y>i447ro m#define g src=+code=CPUID_FREQ_VOLT_CAPABILITIES"bmit="renref">CPUID_FREQ_VOLT_CAPABILITIES> m 0x80000007s< g src=right.png" alt=">>"> #L448ypid L448ypmit="retineyp> L448y>i448> m#define g src=+code=USE_HW_PSTATE"bmit="renref">USE_HW_PSTATE> m 0x00000080s< g src=right.png" alt=">>"> #L449ypid L449ypmit="retineyp> L449y>i449> m > g src=+code=u32ypmit="renref">u32> m g src=+code=eax"pmit="renref">eaxro m, g src=+code=ebx"pmit="renref">ebxro m, g src=+code=ecx"pmit="renref">ecxro m, g src=+code=edx"pmit="renref">edx> mas< g src=right.png" alt=">>"> #L450ypid L450ypmit="retineyp> L450y>i450> m g src=+code=cpuid"pmit="renref">cpuidro m( g src=+code=CPUID_FREQ_VOLT_CAPABILITIES"bmit="renref">CPUID_FREQ_VOLT_CAPABILITIES> m, &ah g src=+code=eax"pmit="renref">eaxro m, &ah g src=+code=ebx"pmit="renref">ebxro m, &ah g src=+code=ecx"pmit="renref">ecxro m, &ah g src=+code=edx"pmit="renref">edx> m)as< g src=right.png" alt=">>"> #L451ypid L451ypmit="retineyp> L451y>i451> m if (( g src=+code=edx"pmit="renref">edx> m &a g src=+code=USE_HW_PSTATE"bmit="renref">USE_HW_PSTATE> m) !=t g src=+code=USE_HW_PSTATE"bmit="renref">USE_HW_PSTATE> m)s< g src=right.png" alt=">>"> #L452ypid L452ypmit="retineyp> L452y>i452> m ENODEV> mas< g src=right.png" alt=">>"> #L453ypid L453ypmit="retineyp> L453y>i453> m #L454ypid L454ypmit="retineyp> L454y>i454> m }s< g src=right.png" alt=">>"> #L455ypid L455ypmit="retineyp> L455y>i455> m ENODEV> mas< g src=right.png" alt=">>"> #L456ypid L456ypmit="retineyp> L456y>i456ro m}s< g src=right.png" alt=">>"> #L457ypid L457ypmit="retineyp> L457y>i457> m onsubmit="recommen ">/* >_gerf_data is a pointer to gercpu data. */hod="pos< g src=right.png" alt=">>"> #L458ypid L458ypmit="retineyp> L458y>i458> m"lxr_s struct g src=+code=>_gt;">_gerformance"bmit="renref">>_gt;">_gerformance> m g src=+code=__gercpu"bmit="renref">__gercpu> m * g src=+code=>_gerf_data"bmit="renref">>_gerf_data> mas< g src=right.png" alt=">>"> #L459ypid L459ypmit="retineyp> L459y>i459> ms< g src=right.png" alt=">>"> #L460ypid L460ypmit="retineyp> L460y>i460> m"lxr_s void h g src=+code=free_>_gerf_data"bmit="renref">free_>_gerf_dataro m(void)s< g src=right.png" alt=">>"> #L461ypid L461ypmit="retineyp> L461y>i461> m{s< g src=right.png" alt=">>"> #L462ypid L462ypmit="retineyp> L462y>i462> m unsigned int"> g src=+code=i"bmit="renref">iro mas< g src=right.png" alt=">>"> #L463ypid L463ypmit="retineyp> L463y>i463> ms< g src=right.png" alt=">>"> #L464ypid L464ypmit="retineyp> L464y>i464> m onsubmit="recommen ">/* Freeing a NULL pointer is OK, and alloc_gercpu zeroes. */hod="pos< g src=right.png" alt=">>"> #L465ypid L465ypmit="retineyp> L465y>i465> m g src=+code=ces_each_possible_cpu"bmit="renref">ces_each_possible_cpuro m( g src=+code=i"bmit="renref">iro m)s< g src=right.png" alt=">>"> #L466ypid L466ypmit="retineyp> L466y>i466> m h g src=+code=free_cpumask_va>"pmit="renref">free_cpumask_va>ro m( g src=+code=per_cpu_ptr"pmit="renref">per_cpu_ptrro m( g src=+code=>_gerf_data"bmit="renref">>_gerf_data> m, g src=+code=i"bmit="renref">iro m)s< g src=right.png" alt=">>"> #L467ypid L467ypmit="retineyp> L467y>i467> m -+seah g src=+code=shared_cpu_mapypmit="renref">shared_cpu_map> m)as< g src=right.png" alt=">>"> #L468ypid L468ypmit="retineyp> L468y>i468> m g src=+code=free_gercpu"bmit="renref">free_gercpuro m( g src=+code=>_gerf_data"bmit="renref">>_gerf_data> m)as< g src=right.png" alt=">>"> #L469ypid L469ypmit="retineyp> L469y>i469> m}s< g src=right.png" alt=">>"> #L470ypid L470ypmit="retineyp> L470y>i470ro ms< g src=right.png" alt=">>"> #L471ypid L471ypmit="retineyp> L471y>i471> m"lxr_s int"> g src=+code=__init"bmit="renref">__init> m g src=+code=lt=_>_gt;">_init"bmit="renref">lt=_>_gt;">_initro m(void)s< g src=right.png" alt=">>"> #L472ypid L472ypmit="retineyp> L472y>i472> m{s< g src=right.png" alt=">>"> #L473ypid L473ypmit="retineyp> L473y>i473> m struct g src=+code=>_gt;">"pmit="renref">>_gt;">> m * g src=+code=pr_backupypmit="renref">pr_backupro m = g src=+code=NULL"bmit="renref">NULL> mas< g src=right.png" alt=">>"> #L474ypid L474ypmit="retineyp> L474y>i474> m unsigned int"> g src=+code=i"bmit="renref">iro mas< g src=right.png" alt=">>"> #L475ypid L475ypmit="retineyp> L475y>i475> m int"> g src=+code=rc"pmit="renref">rcro m = g src=+code=check_prereq"bmit="renref">check_prereqro m()as< g src=right.png" alt=">>"> #L476ypid L476ypmit="retineyp> L476y>i476> ms< g src=right.png" alt=">>"> #L477ypid L477ypmit="retineyp> L477y>i477> m if ( g src=+code=rc"pmit="renref">rcro m)s< g src=right.png" alt=">>"> #L478ypid L478ypmit="retineyp> L478y>i478> m rcro mas< g src=right.png" alt=">>"> #L479ypid L479ypmit="retineyp> L479y>i479> ms< g src=right.png" alt=">>"> #L480ypid L480ypmit="retineyp> L480y>i480> m g src=+code=nr_>_bits"pmit="renref">nr_>_bits> m = g src=+code=get_max_>_id"pmit="renref">get_max_>_idro m() + 1as< g src=right.png" alt=">>"> #L481ypid L481ypmit="retineyp> L481y>i481> m g src=+code=>_ids_done"bmit="renref">>_ids_done> m = g src=+code=kcalloc"pmit="renref">kcallocro m( g src=+code=BITS_TO_LONGS"bmit="renref">BITS_TO_LONGSro m( g src=+code=nr_>_bits"pmit="renref">nr_>_bits> m), sizeof(unsigned long), g src=+code=GFP_KERNEL"bmit="renref">GFP_KERNEL> m)as< g src=right.png" alt=">>"> #L482ypid L482ypmit="retineyp> L482y>i482> m if (! g src=+code=>_ids_done"bmit="renref">>_ids_done> m)s< g src=right.png" alt=">>"> #L483ypid L483ypmit="retineyp> L483y>i483> m ENOMEM> mas< g src=right.png" alt=">>"> #L484ypid L484ypmit="retineyp> L484y>i484> ms< g src=right.png" alt=">>"> #L485ypid L485ypmit="retineyp> L485y>i485> m g src=+code=>_gerf_data"bmit="renref">>_gerf_data> m = g src=+code=&lloc_gercpu"bmit="renref">&lloc_gercpuro m(struct g src=+code=>_gt;">_gerformance"bmit="renref">>_gt;">_gerformance> m)as< g src=right.png" alt=">>"> #L486ypid L486ypmit="retineyp> L486y>i486> m if (! g src=+code=>_gerf_data"bmit="renref">>_gerf_data> m) {s< g src=right.png" alt=">>"> #L487ypid L487ypmit="retineyp> L487y>i487> m g src=+code=pr_debug"pmit="renref">pr_debugro m( g src=+code=DRV_NAME"bmit="renref">DRV_NAME> m onsubmit="restring">"Memory alloca error ces >_gerf_data.\n"hod="po)as< g src=right.png" alt=">>"> #L488ypid L488ypmit="retineyp> L488y>i488> m h g src=+code=kfree"bmit="renref">kfreero m( g src=+code=>_ids_done"bmit="renref">>_ids_done> m)as< g src=right.png" alt=">>"> #L489ypid L489ypmit="retineyp> L489y>i489> m ENOMEM> mas< g src=right.png" alt=">>"> #L490ypid L490ypmit="retineyp> L490y>i490> m }s< g src=right.png" alt=">>"> #L491ypid L491ypmit="retineyp> L491y>i491> m g src=+code=ces_each_possible_cpu"bmit="renref">ces_each_possible_cpuro m( g src=+code=i"bmit="renref">iro m) {s< g src=right.png" alt=">>"> #L492ypid L492ypmit="retineyp> L492y>i492> m if (! g src=+code=z&lloc_cpumask_va>_node"bmit="renref">z&lloc_cpumask_va>_nodero m(s< g src=right.png" alt=">>"> #L493ypid L493ypmit="retineyp> L493y>i493> m &ah g src=+code=per_cpu_ptr"pmit="renref">per_cpu_ptrro m( g src=+code=>_gerf_data"bmit="renref">>_gerf_data> m, g src=+code=i"bmit="renref">iro m)-+seah g src=+code=shared_cpu_mapypmit="renref">shared_cpu_map> m,s< g src=right.png" alt=">>"> #L494ypid L494ypmit="retineyp> L494y>i494> m g src=+code=GFP_KERNEL"bmit="renref">GFP_KERNEL> m, g src=+code=cpu_to_node"bmit="renref">cpu_to_nodero m( g src=+code=i"bmit="renref">iro m))) {s< g src=right.png" alt=">>"> #L495ypid L495ypmit="retineyp> L495y>i495> m g src=+code=rc"pmit="renref">rcro m = - g src=+code=ENOMEM"pmit="renref">ENOMEM> mas< g src=right.png" alt=">>"> #L496ypid L496ypmit="retineyp> L496y>i496> m goto g src=+code=err_out"bmit="renref">err_out> mas< g src=right.png" alt=">>"> #L497ypid L497ypmit="retineyp> L497y>i497> m }s< g src=right.png" alt=">>"> #L498ypid L498ypmit="retineyp> L498y>i498> m }s< g src=right.png" alt=">>"> #L499ypid L499ypmit="retineyp> L499y>i499> ms< g src=right.png" alt=">>"> #L500ypid L500ypmit="retineyp> L500y>i500> m onsubmit="recommen ">/* Do initializa in ACPI core. It is OK to fail here. */hod="pos< g src=right.png" alt=">>"> #L501ypid L501ypmit="retineyp> L501y>i501> m (void) g src=+code=>_gt;">_greregiste>_gerformance"bmit="renref">>_gt;">_greregiste>_gerformancero m( g src=+code=>_gerf_data"bmit="renref">>_gerf_data> m)as< g src=right.png" alt=">>"> #L502ypid L502ypmit="retineyp> L502y>i502> ms< g src=right.png" alt=">>"> #L503ypid L503ypmit="retineyp> L503y>i503> m g src=+code=ces_each_possible_cpu"bmit="renref">ces_each_possible_cpuro m( g src=+code=i"bmit="renref">iro m) {s< g src=right.png" alt=">>"> #L504ypid L504ypmit="retineyp> L504y>i504> m struct g src=+code=>_gt;">_gerformance"bmit="renref">>_gt;">_gerformance> m * g src=+code=perf"pmit="renref">perf> mas< g src=right.png" alt=">>"> #L505ypid L505ypmit="retineyp> L505y>i505> ms< g src=right.png" alt=">>"> #L506ypid L506ypmit="retineyp> L506y>i506> m h g src=+code=perf"pmit="renref">perf> m = g src=+code=per_cpu_ptr"pmit="renref">per_cpu_ptrro m( g src=+code=>_gerf_data"bmit="renref">>_gerf_data> m, g src=+code=i"bmit="renref">iro m)as< g src=right.png" alt=">>"> #L507ypid L507ypmit="retineyp> L507y>i507> m g src=+code=rc"pmit="renref">rcro m = g src=+code=>_gt;">_registe>_gerformance"bmit="renref">>_gt;">_registe>_gerformancero m( g src=+code=perf"pmit="renref">perf> m, g src=+code=i"bmit="renref">iro m)as< g src=right.png" alt=">>"> #L508ypid L508ypmit="retineyp> L508y>i508> m if ( g src=+code=rc"pmit="renref">rcro m)s< g src=right.png" alt=">>"> #L509ypid L509ypmit="retineyp> L509y>i509> m goto g src=+code=err_out"bmit="renref">err_out> mas< g src=right.png" alt=">>"> #L510ypid L510ypmit="retineyp> L510y>i510> m }s< g src=right.png" alt=">>"> #L511ypid L511ypmit="retineyp> L511y>i511> m g src=+code=rc"pmit="renref">rcro m = g src=+code=>_gt;">_notify_smm"bmit="renref">>_gt;">_notify_smmro m( g src=+code=THIS_MODULE"bmit="renref">THIS_MODULEro m)as< g src=right.png" alt=">>"> #L512ypid L512ypmit="retineyp> L512y>i512> m if ( g src=+code=rc"pmit="renref">rcro m)s< g src=right.png" alt=">>"> #L513ypid L513ypmit="retineyp> L513y>i513> m goto g src=+code=err_unregiste>"bmit="renref">err_unregiste>> mas< g src=right.png" alt=">>"> #L514ypid L514ypmit="retineyp> L514y>i514> ms< g src=right.png" alt=">>"> #L515ypid L515ypmit="retineyp> L515y>i515> m g src=+code=ces_each_possible_cpu"bmit="renref">ces_each_possible_cpuro m( g src=+code=i"bmit="renref">iro m) {s< g src=right.png" alt=">>"> #L516ypid L516ypmit="retineyp> L516y>i516> m struct g src=+code=>_gt;">"pmit="renref">>_gt;">> m * g src=+code=_gt"bmit="renref">_p>> mas< g src=right.png" alt=">>"> #L517ypid L517ypmit="retineyp> L517y>i517> m g src=+code=_gt"bmit="renref">_p>> m = g src=+code=per_cpu"pmit="renref">per_cpuro m( g src=+code=pt;">/"bmit="renref">pt;">/> m, g src=+code=i"bmit="renref">iro m onsubmit="recommen ">/* APIC ID */hod="po)as< g src=right.png" alt=">>"> #L518ypid L518ypmit="retineyp> L518y>i518> m if (! g src=+code=_gt"bmit="renref">_p>> m)s< g src=right.png" alt=">>"> #L519ypid L519ypmit="retineyp> L519y>i519> m continueas< g src=right.png" alt=">>"> #L520ypid L520ypmit="retineyp> L520y>i520ro ms< g src=right.png" alt=">>"> #L521ypid L521ypmit="retineyp> L521y>i521> m if (! g src=+code=pr_backupypmit="renref">pr_backupro m) {s< g src=right.png" alt=">>"> #L522ypid L522ypmit="retineyp> L522y>i522> m g src=+code=pr_backupypmit="renref">pr_backupro m = g src=+code=kzalloc"pmit="renref">kzallocro m(sizeof(struct g src=+code=>_gt;">"pmit="renref">>_gt;">> m), g src=+code=GFP_KERNEL"bmit="renref">GFP_KERNEL> m)as< g src=right.png" alt=">>"> #L523ypid L523ypmit="retineyp> L523y>i523> m if ( g src=+code=pr_backupypmit="renref">pr_backupro m)s< g src=right.png" alt=">>"> #L524ypid L524ypmit="retineyp> L524y>i524> m g src=+code=memcpyypmit="renref">memcpyro m( g src=+code=pt_backupypmit="renref">pr_backupro m, g src=+code=_gt"bmit="renref">_p>> m, sizeof(struct g src=+code=>_gt;">"pmit="renref">>_gt;">> m))as< g src=right.png" alt=">>"> #L525ypid L525ypmit="retineyp> L525y>i525> m }s< g src=right.png" alt=">>"> #L526ypid L526ypmit="retineyp> L526y>i526> m (void) g src=+code=upload_pm_dataypmit="renref">upload_pm_dataro m( g src=+code=_gt"bmit="renref">_p>> m)as< g src=right.png" alt=">>"> #L527ypid L527ypmit="retineyp> L527y>i527> m }s< g src=right.png" alt=">>"> #L528ypid L528ypmit="retineyp> L528y>i528> m g src=+code=rc"pmit="renref">rcro m = g src=+code=check_>_ids"bmit="renref">check_>_idsro m( g src=+code=pr_backupypmit="renref">pr_backupro m)as< g src=right.png" alt=">>"> #L529ypid L529ypmit="retineyp> L529y>i529> ms< g src=right.png" alt=">>"> #L530ypid L530ypmit="retineyp> L530y>i530> m g src=+code=kfree"bmit="renref">kfreero m( g src=+code=pr_backupypmit="renref">pr_backupro m)as< g src=right.png" alt=">>"> #L531ypid L531ypmit="retineyp> L531y>i531> m g src=+code=pr_backupypmit="renref">pr_backupro m = g src=+code=NULL"bmit="renref">NULL> mas< g src=right.png" alt=">>"> #L532ypid L532ypmit="retineyp> L532y>i532> ms< g src=right.png" alt=">>"> #L533ypid L533ypmit="retineyp> L533y>i533> m if ( g src=+code=rc"pmit="renref">rcro m)s< g src=right.png" alt=">>"> #L534ypid L534ypmit="retineyp> L534y>i534> m goto g src=+code=err_unregiste>"bmit="renref">err_unregiste>> mas< g src=right.png" alt=">>"> #L535ypid L535ypmit="retineyp> L535y>i535> ms< g src=right.png" alt=">>"> #L536ypid L536ypmit="retineyp> L536y>i536> m #L537ypid L537ypmit="retineyp> L537y>i537> m g src=+code=err_unregiste>"bmit="renref">err_unregiste>> m:s< g src=right.png" alt=">>"> #L538ypid L538ypmit="retineyp> L538y>i538> m g src=+code=fes_each_possible_cpu"bmit="renref">ces_each_possible_cpuro m( g src=+code=i"bmit="renref">iro m) {s< g src=right.png" alt=">>"> #L539ypid L539ypmit="retineyp> L539y>i539> m struct g src=+code=>_gt;">_gerformance"bmit="renref">>_gt;">_gerformance> m * g src=+code=perf"pmit="renref">perf> mas< g src=right.png" alt=">>"> #L540ypid L540ypmit="retineyp> L540y>i540> m g src=+code=perf"pmit="renref">perf> m = g src=+code=per_cpu_ptr"pmit="renref">per_cpu_ptrro m( g src=+code=>_gerf_data"bmit="renref">>_gerf_data> m, g src=+code=i"bmit="renref">iro m)as< g src=right.png" alt=">>"> #L541ypid L541ypmit="retineyp> L541y>i541> m g src=+code=>_gt;">_unregiste>_gerformance"bmit="renref">>_gt;">_unregiste>_gerformancero m( g src=+code=perf"pmit="renref">perf> m, g src=+code=i"bmit="renref">iro m)as< g src=right.png" alt=">>"> #L542ypid L542ypmit="retineyp> L542y>i542> m }s< g src=right.png" alt=">>"> #L543ypid L543ypmit="retineyp> L543y>i543> m g src=+code=err_out"bmit="renref">err_out> m:s< g src=right.png" alt=">>"> #L544ypid L544ypmit="retineyp> L544y>i544> m onsubmit="recommen ">/* Freeing a NULL pointer is OK: alloc_gercpu zeroes. */hod="pos< g src=right.png" alt=">>"> #L545ypid L545ypmit="retineyp> L545y>i545> m g src=+code=cree_>_gerf_data"bmit="renref">free_>_gerf_dataro m()as< g src=right.png" alt=">>"> #L546ypid L546ypmit="retineyp> L546y>i546> m g src=+code=kfree"bmit="renref">kfreero m( g src=+code=>_ids_done"bmit="renref">>_ids_done> m)as< g src=right.png" alt=">>"> #L547ypid L547ypmit="retineyp> L547y>i547> m rcro mas< g src=right.png" alt=">>"> #L548ypid L548ypmit="retineyp> L548y>i548> m}s< g src=right.png" alt=">>"> #L549ypid L549ypmit="retineyp> L549y>i549> m"lxr_s void h g src=+code=__exit"bmit="renref">__exitro m g src=+code=xt=_>_gt;">_exit"bmit="renref">xt=_>_gt;">_exitro m(void)s< g src=right.png" alt=">>"> #L550ypid L550ypmit="retineyp> L550y>i550> m{s< g src=right.png" alt=">>"> #L551ypid L551ypmit="retineyp> L551y>i551> m int"> g src=+code=i"bmit="renref">iro mas< g src=right.png" alt=">>"> #L552ypid L552ypmit="retineyp> L552y>i552> ms< g src=right.png" alt=">>"> #L553ypid L553ypmit="retineyp> L553y>i553> m g src=+code=kfree"bmit="renref">kfreero m( g src=+code=>_ids_done"bmit="renref">>_ids_done> m)as< g src=right.png" alt=">>"> #L554ypid L554ypmit="retineyp> L554y>i554> m g src=+code=fes_each_possible_cpu"bmit="renref">ces_each_possible_cpuro m( g src=+code=i"bmit="renref">iro m) {s< g src=right.png" alt=">>"> #L555ypid L555ypmit="retineyp> L555y>i555> m struct g src=+code=>_gt;">_gerformance"bmit="renref">>_gt;">_gerformance> m * g src=+code=perf"pmit="renref">perf> mas< g src=right.png" alt=">>"> #L556ypid L556ypmit="retineyp> L556y>i556> m h g src=+code=perf"pmit="renref">perf> m = g src=+code=per_cpu_ptr"pmit="renref">per_cpu_ptrro m( g src=+code=>_gerf_data"bmit="renref">>_gerf_data> m, g src=+code=i"bmit="renref">iro m)as< g src=right.png" alt=">>"> #L557ypid L557ypmit="retineyp> L557y>i557> m g src=+code=>_gt;">_unregiste>_gerformance"bmit="renref">>_gt;">_unregiste>_gerformancero m( g src=+code=perf"pmit="renref">perf> m, g src=+code=i"bmit="renref">iro m)as< g src=right.png" alt=">>"> #L558ypid L558ypmit="retineyp> L558y>i558> m }s< g src=right.png" alt=">>"> #L559ypid L559ypmit="retineyp> L559y>i559> m g src=+code=free_>_gerf_data"bmit="renref">free_>_gerf_dataro m()as< g src=right.png" alt=">>"> #L560ypid L560ypmit="retineyp> L560y>i560> m}s< g src=right.png" alt=">>"> #L561ypid L561ypmit="retineyp> L561y>i561> ms< g src=right.png" alt=">>"> #L562ypid L562ypmit="retineyp> L562y>i562> m g src=+code=MODULE_AUTHOR"bmit="renref">MODULE_AUTHORro m( onsubmit="restring">"Konrad Rzeszutek Wilk <konrad.wilk@oracle.com+sea"hod="po)as< g src=right.png" alt=">>"> #L563ypid L563ypmit="retineyp> L563y>i563> m g src=+code=MODULE_DESCRIPTION"bmit="renref">MODULE_DESCRIPTIONro m( onsubmit="restring">"Xen ACPI Pt;"> P-"lxres (and Cx) right. which uploads PM data to Xen hygervi/a>"hod="po)as< g src=right.png" alt=">>"> #L564ypid L564ypmit="retineyp> L564y>i564> m g src=+code=MODULE_LICENSE"bmit="renref">MODULE_LICENSEro m( onsubmit="restring">"GPL"hod="po)as< g src=right.png" alt=">>"> #L565ypid L565ypmit="retineyp> L565y>i565> ms< g src=right.png" alt=">>"> #L566ypid L566ypmit="retineyp> L566y>i566ro m onsubmit="recommen ">/* We want"to be loaded before the CPU freq scaling right.p are loaded.hod="pos< g src=right.png" alt=">>"> #L567ypid L567ypmit="retineyp> L567y>i567> m onsubmit="recommen "> * They are loaded in lxre_initcall. */hod="pos< g src=right.png" alt=">>"> #L568ypid L568ypmit="retineyp> L568y>i568> m g src=+code=device_initcall"bmit="renref">device_initcallro m( g src=+code=xt=_>_gt;">_init"bmit="renref">lt=_>_gt;">_initro m)as< g src=right.png" alt=">>"> #L569ypid L569ypmit="retineyp> L569y>i569> m g src=+code=module_exit"bmit="renref">module_exitro m( g src=+code=xt=_>_gt;">_exit"bmit="renref">xt=_>_gt;">_exitro m)as< g src=right.png" alt=">>"> #L570ypid L570ypmit="retineyp> L570y>i570ro m

"> The original LXR software by the < g src=http://sourceforge.net/projects/lx>">LXR community> m, this exgerimen al ht.p by < g src=mailto:lx>@tinux.no">lx>@tinux.no> m.
"> lx>.tinux.no kindly hosted by < g src=http://www.redpill-tinpro.no">Redpill Linpro AS> m, providt. of Linux consulting and ogera s servi">< since 1995.