11

kernelnetlink 関数を使用している古いモジュールのコンパイル中にコンパイラ エラーが発生します。

int
init_module()
{
    /* Initialize the Netlink kernel interface */
    nl_sk = netlink_kernel_create(&init_net, 17, 0, recv_cmd, NULL, THIS_MODULE);
    if(!nl_sk)
    {
            printk(KERN_INFO "failed to initialize system (error: 1001)\n");
            return -ENOMEM;
    }
 ....

以前は正常に動作していましたが、現在このエラーが発生しています。

error: too many arguments to function 'netlink_kernel_create'

OS情報

uname -a

Linux ibrar-ahmed 3.8.0-17-generic #27-Ubuntu SMP Sun Apr 7 19:39:35 UTC 2013 x86_64  x86_64 x86_64 GNU/Linux
4

3 に答える 3

13

交換するだけ

nl_sk = netlink_kernel_create(&init_net, 17, 0, recv_cmd, NULL, THIS_MODULE);

以下で

struct netlink_kernel_cfg cfg = {
    .input = recv_cmd,
};

nl_sk = netlink_kernel_create(&init_net, 17, &cfg);

そしてそれはうまくいくはずです。私は同じ問題に遭遇しました。

于 2013-07-12T02:44:23.723 に答える