From bd7e746947b2716900b14b4c83a05ba264823c77 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Sun, 20 Apr 2003 20:18:27 -0700 Subject: [PATCH] [PATCH] irqs: drivers/block update drivers/block for new IRQ API. --- drivers/block/DAC960.c | 21 ++++++++++++++------- drivers/block/DAC960.h | 14 +++++++------- drivers/block/cciss.c | 5 +++-- drivers/block/cpqarray.c | 7 ++++--- 4 files changed, 28 insertions(+), 19 deletions(-) diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c index 8ffb84e6db80d..522b178379e82 100644 --- a/drivers/block/DAC960.c +++ b/drivers/block/DAC960.c @@ -2586,7 +2586,7 @@ DAC960_DetectController(PCI_Device_T *PCI_Device, const struct pci_device_id *entry) { struct DAC960_privdata *privdata = (struct DAC960_privdata *)entry->driver_data; - void (*InterruptHandler)(int, void *, Registers_T *) = privdata->InterruptHandler; + irqreturn_t (*InterruptHandler)(int, void *, Registers_T *) = privdata->InterruptHandler; unsigned int MemoryWindowSize = privdata->MemoryWindowSize; DAC960_Controller_T *Controller = NULL; unsigned char DeviceFunction = PCI_Device->devfn; @@ -5112,7 +5112,7 @@ static void DAC960_V2_ProcessCompletedCommand(DAC960_Command_T *Command) Controllers. */ -static void DAC960_BA_InterruptHandler(int IRQ_Channel, +static irqreturn_t DAC960_BA_InterruptHandler(int IRQ_Channel, void *DeviceIdentifier, Registers_T *InterruptRegisters) { @@ -5120,6 +5120,7 @@ static void DAC960_BA_InterruptHandler(int IRQ_Channel, void *ControllerBaseAddress = Controller->BaseAddress; DAC960_V2_StatusMailbox_T *NextStatusMailbox; ProcessorFlags_T ProcessorFlags; + /* Acquire exclusive access to Controller. */ @@ -5154,6 +5155,7 @@ static void DAC960_BA_InterruptHandler(int IRQ_Channel, Release exclusive access to Controller. */ DAC960_ReleaseControllerLockIH(Controller, &ProcessorFlags); + return IRQ_HANDLED; } @@ -5162,7 +5164,7 @@ static void DAC960_BA_InterruptHandler(int IRQ_Channel, Controllers. */ -static void DAC960_LP_InterruptHandler(int IRQ_Channel, +static irqreturn_t DAC960_LP_InterruptHandler(int IRQ_Channel, void *DeviceIdentifier, Registers_T *InterruptRegisters) { @@ -5204,6 +5206,7 @@ static void DAC960_LP_InterruptHandler(int IRQ_Channel, Release exclusive access to Controller. */ DAC960_ReleaseControllerLockIH(Controller, &ProcessorFlags); + return IRQ_HANDLED; } @@ -5212,7 +5215,7 @@ static void DAC960_LP_InterruptHandler(int IRQ_Channel, Controllers. */ -static void DAC960_LA_InterruptHandler(int IRQ_Channel, +static irqreturn_t DAC960_LA_InterruptHandler(int IRQ_Channel, void *DeviceIdentifier, Registers_T *InterruptRegisters) { @@ -5250,6 +5253,7 @@ static void DAC960_LA_InterruptHandler(int IRQ_Channel, Release exclusive access to Controller. */ DAC960_ReleaseControllerLockIH(Controller, &ProcessorFlags); + return IRQ_HANDLED; } @@ -5258,7 +5262,7 @@ static void DAC960_LA_InterruptHandler(int IRQ_Channel, Controllers. */ -static void DAC960_PG_InterruptHandler(int IRQ_Channel, +static irqreturn_t DAC960_PG_InterruptHandler(int IRQ_Channel, void *DeviceIdentifier, Registers_T *InterruptRegisters) { @@ -5296,6 +5300,7 @@ static void DAC960_PG_InterruptHandler(int IRQ_Channel, Release exclusive access to Controller. */ DAC960_ReleaseControllerLockIH(Controller, &ProcessorFlags); + return IRQ_HANDLED; } @@ -5304,7 +5309,7 @@ static void DAC960_PG_InterruptHandler(int IRQ_Channel, Controllers. */ -static void DAC960_PD_InterruptHandler(int IRQ_Channel, +static irqreturn_t DAC960_PD_InterruptHandler(int IRQ_Channel, void *DeviceIdentifier, Registers_T *InterruptRegisters) { @@ -5338,6 +5343,7 @@ static void DAC960_PD_InterruptHandler(int IRQ_Channel, Release exclusive access to Controller. */ DAC960_ReleaseControllerLockIH(Controller, &ProcessorFlags); + return IRQ_HANDLED; } @@ -5350,7 +5356,7 @@ static void DAC960_PD_InterruptHandler(int IRQ_Channel, an arbitrary buffer. */ -static void DAC960_P_InterruptHandler(int IRQ_Channel, +static irqreturn_t DAC960_P_InterruptHandler(int IRQ_Channel, void *DeviceIdentifier, Registers_T *InterruptRegisters) { @@ -5419,6 +5425,7 @@ static void DAC960_P_InterruptHandler(int IRQ_Channel, Release exclusive access to Controller. */ DAC960_ReleaseControllerLockIH(Controller, &ProcessorFlags); + return IRQ_HANDLED; } diff --git a/drivers/block/DAC960.h b/drivers/block/DAC960.h index 01b5432118709..b49dc4cacb948 100644 --- a/drivers/block/DAC960.h +++ b/drivers/block/DAC960.h @@ -2229,7 +2229,7 @@ typedef wait_queue_head_t WaitQueue_T; struct DAC960_privdata { DAC960_HardwareType_T HardwareType; DAC960_FirmwareType_T FirmwareType; - void (*InterruptHandler)(int, void *, Registers_T *); + irqreturn_t (*InterruptHandler)(int, void *, Registers_T *); unsigned int MemoryWindowSize; }; @@ -4233,12 +4233,12 @@ static void DAC960_FinalizeController(DAC960_Controller_T *); static void DAC960_V1_QueueReadWriteCommand(DAC960_Command_T *); static void DAC960_V2_QueueReadWriteCommand(DAC960_Command_T *); static void DAC960_RequestFunction(RequestQueue_T *); -static void DAC960_BA_InterruptHandler(int, void *, Registers_T *); -static void DAC960_LP_InterruptHandler(int, void *, Registers_T *); -static void DAC960_LA_InterruptHandler(int, void *, Registers_T *); -static void DAC960_PG_InterruptHandler(int, void *, Registers_T *); -static void DAC960_PD_InterruptHandler(int, void *, Registers_T *); -static void DAC960_P_InterruptHandler(int, void *, Registers_T *); +static irqreturn_t DAC960_BA_InterruptHandler(int, void *, Registers_T *); +static irqreturn_t DAC960_LP_InterruptHandler(int, void *, Registers_T *); +static irqreturn_t DAC960_LA_InterruptHandler(int, void *, Registers_T *); +static irqreturn_t DAC960_PG_InterruptHandler(int, void *, Registers_T *); +static irqreturn_t DAC960_PD_InterruptHandler(int, void *, Registers_T *); +static irqreturn_t DAC960_P_InterruptHandler(int, void *, Registers_T *); static void DAC960_V1_QueueMonitoringCommand(DAC960_Command_T *); static void DAC960_V2_QueueMonitoringCommand(DAC960_Command_T *); static void DAC960_MonitoringTimerFunction(unsigned long); diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index f566e20e2094f..22f0528a9aa70 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -1965,7 +1965,7 @@ startio: start_io(h); } -static void do_cciss_intr(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t do_cciss_intr(int irq, void *dev_id, struct pt_regs *regs) { ctlr_info_t *h = dev_id; CommandList_struct *c; @@ -1975,7 +1975,7 @@ static void do_cciss_intr(int irq, void *dev_id, struct pt_regs *regs) /* Is this interrupt for us? */ if ( h->access.intr_pending(h) == 0) - return; + return IRQ_NONE; /* * If there are completed commands in the completion queue, @@ -2023,6 +2023,7 @@ static void do_cciss_intr(int irq, void *dev_id, struct pt_regs *regs) */ spin_unlock_irqrestore(CCISS_LOCK(h->ctlr), flags); blk_start_queue(&h->queue); + return IRQ_HANDLED; } /* * We cannot read the structure directly, for portablity we must use diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c index e3b8e0ef2f26f..b78eea8c0a730 100644 --- a/drivers/block/cpqarray.c +++ b/drivers/block/cpqarray.c @@ -144,7 +144,7 @@ static inline cmdlist_t *removeQ(cmdlist_t **Qptr, cmdlist_t *c); static inline void complete_buffers(struct bio *bio, int ok); static inline void complete_command(cmdlist_t *cmd, int timeout); -static void do_ida_intr(int irq, void *dev_id, struct pt_regs * regs); +static irqreturn_t do_ida_intr(int irq, void *dev_id, struct pt_regs * regs); static void ida_timer(unsigned long tdata); static int ida_revalidate(struct gendisk *disk); static int revalidate_allvol(kdev_t dev); @@ -929,7 +929,7 @@ static inline void complete_command(cmdlist_t *cmd, int timeout) * Find the command on the completion queue, remove it, tell the OS and * try to queue up more IO */ -static void do_ida_intr(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t do_ida_intr(int irq, void *dev_id, struct pt_regs *regs) { ctlr_info_t *h = dev_id; cmdlist_t *c; @@ -940,7 +940,7 @@ static void do_ida_intr(int irq, void *dev_id, struct pt_regs *regs) istat = h->access.intr_pending(h); /* Is this interrupt for us? */ if (istat == 0) - return; + return IRQ_NONE; /* * If there are completed commands in the completion queue, @@ -991,6 +991,7 @@ static void do_ida_intr(int irq, void *dev_id, struct pt_regs *regs) */ do_ida_request(&h->queue); spin_unlock_irqrestore(IDA_LOCK(h->ctlr), flags); + return IRQ_HANDLED; } /* -- 2.53.0