0-3
     �ÂÁÆ      File not found.
  #   ˆl–Ü4ý( ©³( 	Å€fàD¦-ÿÉƒ€ïÆÂÇ ·    /* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_X86_TLB_H
#define _ASM_X86_TLB_H

#define tlb_flush tlb_flush
static inline void tlb_flush(struct mmu_gather *tlb);

#include <asm-generic/tlb.h>

static inline void tlb_flush(struct mmu_gather *tlb)
{
	unsigned long start = 0UL, end = TLB_FLUSH_ALL;
	unsigned int stride_shift = tlb_get_unmap_shift(tlb);

	if (!tlb->fullmm && !tlb->need_flush_all) {
		start = tlb->start;
		end = tlb->end;
	}

	flush_tlb_mm_range(tlb->mm, start, end, stride_shift, tlb->freed_tables);
}

/*
 * While x86 architecture in general requires an IPI to perform TLB
 * shootdown, enablement code for several hypervisors overrides
 * .flush_tlb_others hook in pv_mmu_ops and implements it by issuing
 * a hypercall. To keep software pagetable walkers safe in this case we
 * switch to RCU based table free (MMU_GATHER_RCU_TABLE_FREE). See the comment
 * below 'ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE' in include/asm-generic/tlb.h
 * for more details.
 */
static inline void __tlb_remove_table(void *table)
{
	free_page_and_swap_cache(table);
}

static inline void invlpg(unsigned long addr)
{
	asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
}
#endif /* _ASM_X86_TLB_H */
  0   !ˆl–ßi~”Je¶…8 ƒp\dJbÑ¿Êƒu—_ŒuÐb&=Ly[Ï¿ÄÉ È    !ý7zXZ  æÖ´F !   t/å£à–œ…] ?‘E„h=‰¦Úœ¦¬.+ËÈŸH�ÌÆ2¹˜ËßM…"Þž¯J¡1š+–šâ³9dø£ø·ß”[�·�k2˜»=dŒ	ÏWÜ[‘à©½ …\(*ôg“/Êã^Ï@*k<
¥»W±bJe`9ÿœ"bkwhèòQ¯ f\4�»Yû
V¢ …Õj)S:‚åìvÎ`Úkî °Ô3)‡ÃðQ"	¨ ÞºÓÞ°¤¡nô|Ž�uµ<ge¨CKÚô3Ÿ6qü˜Ê K ~å¤_ˆ•wÂ/»ITb k<ÁÖŽ¨¼ð�¥´®/+RÈ ’Ñ!ßíMŸ?IyFdŽ²lÂ+ÀºùŒÓ¿~ÍÊ¸ÇDt`ÓÞëþÒù¼á×´ƒC:)fƒ]5Á…ííÃ@îföTÀÿç?Öÿ ;û'”�Â]ˆ.ÂÉ¥r¿sÍë
})‘>¶¿ùÀM •/ò°Õ'±S"€Z:8Ž-[Ö^¼ñBUJ<�Ý½²¸ØÔ*˜D¥ƒTnš£§:}Fia1·…*ÁØÏ€AÍÐ–î/Dƒ–-ï×\çáÄß&e˜uòL,@ÂKy*ðŠ:yúå?æ÷?X*q9‡‚ãÜñƒ\Ý[‡™Ô¡š–c£É	€V½&¨èŒÓÁµe0•—À¼O•~2]ÇG¸;aÒ!	FÃEL1ñ;ŸàÿOtcÑoqGÿÁËS°ÚP²á†‰vA0‘áÌó‘)÷¡³I�ÉŒÇH}|{í–ÆaîVž~üæ¿z5@
,rgäclSÌµ°òÑÖÌ
BÿZ"Ð`kS‹L,ãØÀ4êðcÆbÁäUÄaü5¬¼ò
Ì£œ”¦´äW³9��X›h)XhoÚXQ'ñPQöÝE›Ú1$¼&‡£E²p6­�hãéÅvtghdëÔßEõj u1”æ¾Û�˜Bèß™ˆáïx'.\s)»Ž¡‰Ã±òHnùÞ„þµ99nÊ›¶AI˜¿¬ùXŽ­äZ-ƒ=‘×D�÷m«Ú*%mÎ¾´~­éXÕÃùL½s[fª½ýzAÎ”ó?ÝÔ«ý>X2{–Œ�ÏœjÊ|Æ\i®ú¤#Ÿ­Fž!´Àt Xýc®ä�±d›“Ö^j�#:i•p;:Á· i‚uÐš“Ž[ÀURæ€o³¦0Ár~Øú©ê²Œ&V³]uÿœøÿð·ù¸8(�Ù.úôœ‘–Ÿ^_Q/"É—�Öü"Ü,àx…®ÿWÓ&µ“ÂŠË±ÕMô!w1d±åP1ƒ¸Â-ë¤g“ ,|û� {faZÏ÷ÀŠ`¨¡i»çw@0Õê;Àë™1pcô	'BVv]×®?NsÉ_0±�|´¸›�H*È“”¢èrw#‚Q^Í¦Dþ|‹ß¹ôJ©¼üwž×±Á^öÇN}·üœºæKwä02?Ò1u¿Í7Ì;Ê# Lü¬?êžJ›­š2ÈYi§4Ñß\„m+»Xh~!j@|;é>_{µÄ'Ì[˜¢o¥Ó×ñy	3ˆŒqX}°ÏZRwOÇOn‹w×Mz!æ‘ÎÂÚËqný•…KI2	8‹$
Žá7çŸ¸)¢�‘eKNE#”VõÒÎÅpâLBË„"Û¥…)�¹<$å/�ð˜ÅÍì¿•s¨s5’G×Ã¤cW‚ë±èY#¾­^Û I�òŸÓ1¿Y7å> ¤,NÖâùã£.âøs:TiA‚š*‚	G† 8hxòŒ½((¢Û´<µz‹MH­°K?ÜàŽ-Þo©¿‚‰WÉvi lVk;–NKÕ¨Ö>°T,—Qxñ{y‘ÊRö,_íÛý|˜*×Âk§ýJ•ú›Ü¼-V)7%\>ò³£x÷F¡O!Q ã÷�ƒÃ*±AÜ?ÅËÿêx�S]¹Mˆ™G§…$	º„SÇ{ì¦ÿÁ<æcT=�Òoq±¿k$u~B€&níGÄ‚¸‘ ätVWYõî~ÍºÕò×ä4[[CMu£å¬nÓƒ{`íáK›¬54»RL[cÁŒÂ7ôår¶M?‰ºb”¿!MX¶ð'‘`8:Ín%KýN`¦N/ÏNv¢©å“�É	œ	Šh`ßJ?[¤ú†²W€‘_"½‘ÒvÈìë²/”±äÇ….×[üß0#ìµ$Ÿì;
�ÑŽo¹"�K¨îæo¦ƒiÔ8¼]VE4¦Ïž§p³(Ïž³D#Ž�(6Xl¹­ i£�Ýfb3¢¿=r§'en£�ÚµÐÒ‘¸¬ƒÖÁ'ÙßÛ˜±Äþ²ZÍúø��’kuB†=g˜Ô@b,yªÐRû�ïƒt�2?KÉeºŸ„z�ëN–—Ý'&žÞ(¥˜¦YÀ<•þQPÏàebd?À6pëã«Þ7(ö ~æ§ÁÇcÝ*G´ó8KÀ±FÌGïAÆ7écÐG¶4oRHšEÎk`Ô“‰ŸÓÒ',K˜B¿öHpn ×A®®|v°‚ã"˜“ÀL)‚_íKIe­v˜á©œïõ~Ûaeqô{²-æòs¬.ßEz›=\°ô ”ÏÍõ/ü
Àëò*G0’Û\�zµtÉäLâÿ´·0ú¿K¶ï“û»`õi6hÀø¢6ñ¤^™ÓˆÝ5Ž°’2˜Å-zØÌ°•épÀ�@Téíá¥IÑ?Yp0”N¥ÉÊ4
)óùûa'OÝ²çÚ;4gº_·O?\_]!}kÆ0ÎO�ó0œM›tyrúÖ„©u`=CD4ºM°éñx&W³ÜÓb”2›9’<¼{.ÖW+#ÔM°³BÍ�ÞŒ öÜdx—¢ö`²BD˜tL~ã(GÇ�Aÿ”Ü¹9~·0‡'ŠäM’uÂe0\_šÓ�ï»¤]á»ßŽo>�2'ZÅV¶˜Sv7•Ó€Ök ö¥<‡�hg‡r5ðÓNä¯muÈb9é# |ŽÅõÍ‘»±Î¹ÿž‘Lùü˜ÏµºiÙoM}”F»ãûÞEî\vd¯xE™×®=§Z“O<(0à­©ÕÃãÓGSU9$�µ~ÒUEî7¶À‰„¾3'�Ò™‹-}ãA$=â!±÷ãrÀ�Ò>Ú_K��6òhñ3S/R’×=CíÚ7cyî½fÐ/ÿ°?Ÿ=Ç¡»‡W"ˆÜ�8M^o),ˆãór1ÓÎ‡ó]åèúu&�\/^�¾ŠÒ¸qWq$$a�"o+¬áO¼gPOuYUØÇÖ¨{Ö—è�Ye‘7`Ð“-³š4ï#ëh,‹ˆÏt?âœc¯²&û“ÙD!¿ƒT‘Îœ�v×³ƒ]xó bgóQ>Ûä]\xü–Ä’&—Ðe«"3Íš»ùÓ´ËÌr‹®è&õ•‡CÙÍ«má+­q]efýwäSúä6é~óW÷Í6¿"®r®J‰Œ~c7 ^Ä$ŒCÖ]ÎyDÄHy¥<0ì­ûgƒ‚Kt$NÈë(C=ê&˜P‰�™È)³]a7à=h…HAaò:Îb¼Ê_©pã¨‘3