static int rtl8192_pci_probe(struct pci_dev *pdev,
                        const struct pci_device_id *id);
 static void rtl8192_pci_disconnect(struct pci_dev *pdev);
+static irqreturn_t rtl8192_interrupt(int irq, void *netdev);
 
 static struct pci_driver rtl8192_pci_driver = {
        .name = DRV_NAME,       /* Driver name   */
                    (unsigned long)dev);
 
        rtl8192_irq_disable(dev);
-       if (request_irq(dev->irq, (void *)rtl8192_interrupt_rsl, IRQF_SHARED,
+       if (request_irq(dev->irq, rtl8192_interrupt, IRQF_SHARED,
            dev->name, dev)) {
                printk(KERN_ERR "Error allocating IRQ %d", dev->irq);
                return -1;
 }
 
 
-irqreturn_type rtl8192_interrupt(int irq, void *netdev, struct pt_regs *regs)
+irqreturn_t rtl8192_interrupt(int irq, void *netdev)
 {
        struct net_device *dev = (struct net_device *) netdev;
        struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
 
        .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID , \
        .driver_data = (kernel_ulong_t)&(cfg)
 
-#define irqreturn_type irqreturn_t
-
-#define rtl8192_interrupt(x, y, z) rtl8192_interrupt_rsl(x, y)
-
 #define RTL_MAX_SCAN_SIZE 128
 
 #define RTL_RATE_MAX           30
 void check_rfctrl_gpio_timer(unsigned long data);
 
 void rtl8192_hw_wakeup_wq(void *data);
-irqreturn_type rtl8192_interrupt(int irq, void *netdev, struct pt_regs *regs);
-
 short rtl8192_pci_initdescring(struct net_device *dev);
 
 void rtl8192_cancel_deferred_work(struct r8192_priv *priv);