0
私はpingに似たモジュールを作成しようとしています。パケットを受信する際に問題が発生しています。コードは次のとおりです。napiが受信に使用されました
#include<asm/uaccess.h>
#include<linux/sched.h>
#include<linux/wait.h>
#include<linux/netfilter.h>
#include<linux/netfilter_ipv4.h>
struct net_device *dev;
struct sk_buff *skb;
struct napi_struct *rnapi;
int rrpoll(struct napi_struct *napi,int budget)
{
printk(KERN_ALERT"we are HEARRR%s,%d\n",__func__,__LINE__);
skb = (struct sk_buff *)kmalloc(sizeof(struct sk_buff *),GFP_KERNEL);
netif_receive_skb(skb);
kfree(skb);
return 0;
}
static int rec_init(void)
{
dev = __dev_get_by_name(&init_net,"wlan0");
rnapi = (struct napi_struct *)kmalloc(sizeof(struct napi_struct *),GFP_KERNEL);
netif_napi_add(dev,rnapi,&rrpoll,100);
napi_schedule(rnapi);
return 0;
}
static void rec_exit(void)
{
//napi_complete(rnapi);
netif_napi_del(rnapi);
}
モジュールはコンパイルされ、エラーなく実行されますが、しばらくしてからシステム全体がハングアップします。
「システム全体は、いくつかの時間後にハング」問題かどうか、誰が間違って何を伝えるために、またはあなたのコードがハングアップする責任がある、またはそれがある場合にあってもために不十分ですあなたが投稿したコードまたは他の場所にあります。 –
@JimGarrison私はちょうどチェック用のパケットとそのコードを受信するための新しいモジュールを作った....... – karan421
@JimGarrison「ある時間の後に」とは、モジュールをインストールした後、システムがインストールされていないときにシステムが動作しない..... – karan421