--- skge.old 2010-04-30 20:31:24.502166321 +0800 +++ skge.c 2010-04-30 20:34:07.902165413 +0800 @@ -1732,6 +1732,9 @@ static int __devinit SkGeTestIsr(int irq, void *dev_id, struct pt_regs *ptregs) #endif { +#define TASK_INTERRUPTIBLE 1 +#define TASK_UNINTERRUPTIBLE 2 +#define TASK_NORMAL (TASK_INTERRUPTIBLE | TASK_UNINTERRUPTIBLE) struct SK_NET_DEVICE *dev = (struct SK_NET_DEVICE *)dev_id; DEV_NET *pNet; SK_AC *pAC; @@ -1768,6 +1771,8 @@ */ static int __devinit SkGeTestMsi(struct SK_NET_DEVICE *dev, SK_AC *pAC) { +#define TASK_UNINTERRUPTIBLE 2 + struct pci_dev *pdev = pAC->PciDev; int Ret; SK_U32 test32; @@ -1787,6 +1792,11 @@ SK_OUT8(pAC->IoBase, B0_CTST, CS_ST_SW_IRQ); SK_IN8(pAC->IoBase, B0_CTST, &test8); +extern signed long schedule_timeout(signed long timeout); +extern signed long schedule_timeout_interruptible(signed long timeout); +extern signed long schedule_timeout_killable(signed long timeout); +extern signed long schedule_timeout_uninterruptible(signed long timeout); + wait_event_timeout(pAC->msi_wait, (pAC->AllocFlag & SK_ALLOC_MSI), HZ/10); if (!(pAC->AllocFlag & SK_ALLOC_MSI)) {