发新话题
打印

kernel panic,原因不明

kernel panic,原因不明

我仿照一个日志.写了一个2.4内核的键盘中断,编译通过,但是一加载就会死机,请高手帮忙看一下.急!~~!谢谢了
#include<linux/config.h>
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/init.h>
#include<linux/modversions.h>
#include<linux/version.h>
#include<linux/fs.h>
#include<linux/sched.h>
#include<linux/errno.h>
#include <linux/irq.h>
#include<linux/interrupt.h>
#include<asm/io.h>
#include<linux/tqueue.h>
#include<linux/list.h>
MODULE_LICENSE("GPL");
static void got_char(void *scancode)
{
        printk("sth happened ,oh yes!\n");
        printk("scan code %x %s.",(int)*((char*)scancode)&0x7f);
        }
void  key_sever(int irq, void *dev_id, struct pt_regs *regs)
{
printk("mouse key down\n");
static unsigned char scancode;
static struct tq_struct task;
LIST_HEAD(key_sever);
INIT_LIST_HEAD(&key_sever);
task.sync=0;
task.routine=got_char;
task.data=&scancode;
unsigned char status;
scancode=inb(0x60);
printk("inb started\n");
queue_task(&task,&tq_immediate);
mark_bh(IMMEDIATE_BH);
printk("mission started\n");
printk("register device ok\n");
}
int __init mou_init(void)
{
  free_irq(1,NULL);
  int keytesta=1;
  int result;
        result=request_irq(1,key_sever,SA_SHIRQ,"keytest",&keytesta);
if (result==0)
                                {
                                printk("request ok\n");
                                }
else
                                {
                                printk("failed\n");
                                }
                                return 0;
}
void __exit mou_exit(void)
{
        free_irq(1,NULL);
        printk("<1>goodbye\n");
        }
module_init(mou_init);
module_exit(mou_exit);      

TOP

发新话题