Habang ang mga araw na ito Linus Torvalds ay halos nakikitungo sa herding bagong code sa Linux kernel at pagiging isang gate keeper sa halip na aktibong bumuo ng bagong kernel code sa kanyang sarili, para sa in-development Linux 6.4 siya ay natagpuan ang kanyang sarili na gumagawa ng kaunting coding.

Tulad ng nabanggit noong nakaraang linggo, personal niyang kinuha ang paglilinis ng x86 memory copy code para sa Linux 6.4. Sa linggong ito, pinagsama niya ang higit pa sa kanyang sariling code habang pinag-uusapan niya ang ilan sa mga code na pinagsama ng mga inhinyero ng Intel bilang bahagi ng kanilang pagpapagana ng Linear Address Masking.

Sa panahon ng Linux 6.2 na araw sa pagtatapos ng nakaraang taon, tinanggihan ni Linus ang Intel LAM code noong panahong iyon para sa iba’t ibang teknikal na isyu. Pagkatapos ay inayos ito ng Intel para sa Linux 6.4.


Sa pagkakataong ito, pinagsama ni Linus ang Intel LAM sa Linux 6.4 bilang bagong feature na ito ng CPU para sa pagpapaalam sa user-space na mag-imbak ng metadata sa loob ng ilang piraso ng mga pointer nang hindi tinatakpan ito bago gamitin. Ang Intel LAM-tulad ng Arm TBI-ay maaaring magamit sa mga virtual machine, profiling/sanitizer/tagging, at iba pang mga application. Ngunit sa pagkakataong ito mayroong ilang mas mababa sa perpektong code na personal niyang kinuha sa pag-aayos.

Nagsulat si Linus sa isang bagong pagsama a> sa Biyernes:

Pagsamahin ang aking x86 uaccess updates branch.

Ang mga update ng LAM (“Linear Address Masking”) sa release na ito ay nagpalungkot sa akin tungkol sa kung paano ginawa ang”access_ok()”, at talagang mayroon din itong ilang maliliit na bug. Ito ang aking paglilinis ng code:

-gamitin ang sign bit ng __user pointer sa halip na i-mask ang address at suriin ito laban sa hanay ng TASK_SIZE.

Ginawa na namin ang bahaging ito para sa get/put_user() side, ngunit ginawa ng’access_ok()’ang walang muwang na”mask and range check”na bagay, na hindi lamang nakabuo ng masamang code, ngunit nagtapos din ng kahulugan na ang __access_ok mismo ay hindi gumawa ng magandang trabaho, kaya hindi nakuha ng copy_from_user_nmi() ang tseke nang tama.

-ilipat ang lahat ng code na 64-bit lamang sa 64-bit na bersyon ng header file, nang sa gayon ay hindi namin marumihan ang nakabahaging x86 code at gawin itong parang gumagana sa LAM 32-bit din.

-ayusin ang isang bug sa address masking (na hindi mahalaga: sa kasong ito ang ayusin ay alisin lamang ang buggy code nang buo).

-ilang maliit na paglilinis at idinagdag na komentaryo tungkol sa access_ok() na mga panuntunan.

Kaya ang Intel LAM ay nananatiling handa para sa Linux 6.4 at ang Torvalds ay muling nagsagawa ng humigit-kumulang isang daan mga linya ng code para sa paglilinis nito.
Ngayon para sa Linux user-space upang maghanda para gamitin ang Intel LAM.