Я пишу драйвер устройства, который, помимо прочего, выделяет блок памяти с kmalloc
. Эта память освобождается, когда пользовательская программа закрывает файл. В одном из моих экспериментов пользовательская программа вылетала без закрытия файла.
Освободило бы что-нибудь эту память?
В другом эксперименте я переместил kfree()
из функции close()
в функцию module_exit()
. Когда я запускал пользовательскую программу два раза подряд, я снова вызывал kmalloc
с тем же указателем, что и раньше, без предварительного его освобождения. Таким образом, я потерял указатель на эту память и не могу ее освободить.
Эта память теряется в системе до тех пор, пока я не перезагружусь, или она освободится, когда я выгружу драйвер?