Освобождается ли память, выделенная kmalloc (), автоматически?

Я пишу драйвер устройства, который, помимо прочего, выделяет блок памяти с kmalloc. Эта память освобождается, когда пользовательская программа закрывает файл. В одном из моих экспериментов пользовательская программа вылетала без закрытия файла.

Освободило бы что-нибудь эту память?

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

Эта память теряется в системе до тех пор, пока я не перезагружусь, или она освободится, когда я выгружу драйвер?

6
задан Nathan Fellman 25 July 2012 в 19:42
поделиться