Може ли извикването на __alloc_pages_slowpath() да оцелее след прекъсване на устройството, което също прави повикване на __alloc_pages_slowpath() или второто извикване поврежда първото?
Виждам програмно извикване read(2) на обикновен файл на файлова система XFS. Проследяването на стека на ядрото показва, че в крайна сметка __alloc_pages_slowpath() се извиква, след което се случва e1000e IRQ, което също в крайна сметка извиква __alloc_pages_slowpath() и след това почти веднага се появява лог съобщение "fooprog: неуспешно разпределение на страници. поръчка:0, режим:0x4020".
Цялото трасиране на стека може да се види тук: https://gist.github.com/790577