CVE-2026-97569
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
bnxt_en: Zapobiegaj zatrzymaniu kolejki dzięki opóźnionym dokończeniom
Gdy sterownik odbierze serię pakietów, może oznaczyć płytę BD znakiem
Bit NO_CMPL do odroczenia uzupełnień. Oczekuje się, że ostatni
pakiet w pierścieniu będzie miał ten bit rozbrojony i wygenerowane zostanie zakończenie
przez ten pakiet wyczyści ten pakiet i pakiety poprzedzające go. To
pomaga zmniejszyć liczbę zwolnionych uzupełnień.
Pominięte uzupełnienia są kontrolowane przez sterownik i liczbę
pakietów z tłumionymi uzupełnieniami skaluje się wraz z rozmiarem pierścienia.
Z drugiej strony pakiety SW USO mają górną granicę maksimum
liczba BD, które można zużyć, która nie skaluje się wraz z pierścieniem
rozmiar.
Zatem w przypadku małych pierścieni możliwe jest, że: przekazywana jest seria pakietów
sterownika, sterownik opóźnia zakończenie wszystkich pakietów, ponieważ
liczba wolnych deskryptorów pozostaje powyżej progu w sterowniku.
Następnie dociera pakiet USO, ale liczba dostępnych dysków BD nie jest dostępna
wystarczające i kod obowiązku świadczenia usługi powszechnej kończy się wcześniej.
W takim przypadku znajdziesz się w stanie, w którym pierścień będzie pełen pakietów
z pominięciem ich uzupełnień, co może spowodować zatrzymanie kolejki i
nigdy nie uruchamiać się ponownie.
Zakładając domyślną CONFIG_MAX_SKB_FRAGS, jest to możliwe tylko dla small
pierścienie (<= 457 deskryptorów, poniżej domyślnej wartości sterownika) kiedy
seria pakietów wypełnia pierścień, po czym następuje duży pakiet USO
nie pasuje. W przypadku większych pierścieni delta pomiędzy zakończeniem
próg tłumienia i BD wymagane dla SW USO są wystarczająco duże
że zakończenia zostaną uruchomione i ta sprawa jest nieosiągalna.
Na tę kwestię zwrócił uwagę Sashiko i choć wydaje się to dość mało prawdopodobne
biorąc pod uwagę, że rozmiar kolejki musi być mały, aby to wywołać, rzeczywiście tak jest
możliwe.
Napraw ten problem, śledząc ostatni BD, który opóźnił zakończenie i
centralizacja logiki podejmowania decyzji, kiedy zadzwonić do drzwi. Wartość NO_CMPL
bit jest teraz wyczyszczony w bnxt_txr_db_kick(), więc każda witryna z dzwonkiem do drzwi jest
objęte ubezpieczeniem, w tym wcześniejsze wyjście z obowiązku świadczenia usługi powszechnej na południowym wschodzie. To gwarantuje pierścionek zawsze
kończy się dyskiem BD, który generuje zakończenie czyszczenia i budzenia kolejki.
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org