Linux模块编程失败并陷入循环

时间:2012-12-11 04:37:53

标签: c linux-kernel kernel-module kernel

好的,所以我正在为硬件分配编程,但可以使用一些帮助或见解。我知道我到处都读过你不应该在模块中打开文件但是我们的任务......

无论如何我的模块代码在这里: http://pastebin.com/LU8hWraL

我的用户级代码在这里: http://pastebin.com/RC0Zk1kQ

好吧,我的问题是它有时会起作用,有时候它不会...大多数时候它不起作用,它会在内核中循环而我不明白是什么导致了这个问题我怎么能解决它。任何有关这种情况的帮助都会令人难以置信,我只是不断地关闭并重启我的VM而感到沮丧。

即使有人告诉我如何在我的VM循环时找到错误......?

1 个答案:

答案 0 :(得分:0)

首先,您可能希望使用kernel_read(),而不是自己做这些事情。

这里可能有两个问题

  • 您将&filpRead->f_pos作为参数提供给readwrite,这是供内核内部使用的。
  • 加密或解密数据时,可能无法获得相同的字节数。因此,写入相同数量的数据也是一个问题。

因为我已经看过内核编程了,所以很久以前就拿了两粒盐。