[英]kernel crash with kmalloc
我實際上是在排隊的學科中嘗試使用kmalloc
在內核代碼中分配內存。 我想將內存分配給q->agg_queue_hdr
,其中q
是排隊規則,而agg_queue_hdr
是結構,因此如果分配內存是這樣的:
q->agg_queue_hdr=kmalloc(sizeof(struct agg_queue), GFP_ATOMIC);
內核崩潰。 根據我從搜索中看到的kmalloc
示例,現在將其更改為:
agg_queue_hdr=kmalloc(sizeof(struct agg_queue), GFP_ATOMIC);
內核不會崩潰。 現在我想知道如何為指針q->agg_queue_hdr
分配內存?
確保q
指向內存的有效區域。 然后,您應該能夠像開始一樣分配q->agg_queue_hdr
。
為什么不按以下方式修改代碼,這樣可以避免內核崩潰。
if (q->agg_queue_hdr) {
q->agg_queue_hdr = kmalloc(sizeof(struct agg_queue), GFP_ATOMIC);
}
else {
printk("[+] q->agg_queue_hdr invalid \n");
dump_stack(); // print callstack in the kernel log.
}
拆卸“ q-> agg_queue_hdr”時,“ ldr”指令將在發生內核恐慌的地方工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.