Vaikka nykyään Linus Torvalds käsittelee enimmäkseen uuden koodin paimentamista Linux-ytimeen ja portinvartijan toimimista sen sijaan, että kehittelee itse aktiivisesti uutta ydinkoodia, kehitysvaiheessa olevaa Linux 6.4:ää varten hän on huomannut tekevänsä hieman koodausta.

Kuten viime viikolla todettiin, hän ryhtyi henkilökohtaisesti puhdistamaan x86-muistikopiokoodia Linux 6.4:lle. Tällä viikolla hän on yhdistänyt enemmän omaa koodiaan, kun hän riitautti osan Intelin insinöörien yhdistämästä koodista osana Lineaarisen osoitteen peittämisen mahdollistamista.

Viime vuoden lopulla 6,2 päivää Linuxin aikana Linus hylkäsi Intelin LAM-koodin useiden teknisten ongelmien vuoksi. Intel muokkasi sen sitten Linux 6.4:lle.


Tällä kertaa Linus yhdisti Intelin LAM Linux 6.4:ään uudeksi prosessoriominaisuudeksi, jonka avulla käyttäjätila voi tallentaa metatietoja joidenkin osoittimien sisällä peittämättä niitä ennen käyttöä. Intel LAM-kuten Arm TBI-voi olla hyödyllinen virtuaalikoneissa, profiloinnissa/desinfioinnissa/taggauksessa ja muissa sovelluksissa. Mutta tällä kertaa siellä oli joitain vähemmän kuin ihanteellisia koodeja, joita hän henkilökohtaisesti otti siivoamaan.

Linus kirjoitti uuden yhdistyksen perjantaina:

Yhdistä x86 uaccess-päivityshaarani.

Tämän julkaisun LAM-päivitykset (“Linear Address Masking”) saivat minut tyytymättömäksi”access_ok()”:n tekemiseen, ja itse asiassa siinäkin kävi ilmi, että siinä oli pari pientä virhettä. Tämä on minun siivoukseni koodista:

-käytä __user-osoittimen merkkibittiä sen sijaan, että peittäisit osoitteen ja tarkistaisit sen TASK_SIZE-alueen suhteen.

Teimme tämän osan jo get/put_user()-puolelle, mutta’access_ok()’teki naiivin”mask and range check”-jutun, joka ei ainoastaan ​​luo ilkeää koodia, vaan myös päätyi merkitykseen. että __access_ok itse ei tehnyt hyvää työtä, joten copy_from_user_nmi() ei saanut tarkistusta oikein.

-siirrä kaikki vain 64-bittinen koodi otsikkotiedoston 64-bittiseen versioon, jotta emme turhaan saastuta jaettua x86-koodia ja anna sen näyttää siltä, ​​että LAM voisi toimia Myös 32-bittinen.

-korjaa virhe osoitteen peitossa (sillä ei loppujen lopuksi ole väliä: tässä tapauksessa korjaus oli vain bugisen koodin poistaminen kokonaan).

-pari triviaalia siivousta ja lisätty kommentteja access_ok()-säännöistä.

Joten Intel LAM on edelleen valmis Linux 6.4:lle ja Torvalds muokkasi noin sata koodiriviä sen puhdistamista varten.
Nyt Linux-käyttäjätilaa valmistautua käyttämään Intel LAM:ia.