fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / cdrom / cdu31a.c
index 72ffd64..2157c58 100644 (file)
 #include <linux/hdreg.h>
 #include <linux/genhd.h>
 #include <linux/ioport.h>
-#include <linux/devfs_fs_kernel.h>
 #include <linux/string.h>
 #include <linux/slab.h>
 #include <linux/init.h>
@@ -514,7 +513,7 @@ static inline void write_cmd(unsigned char cmd)
        outb(cmd, sony_cd_cmd_reg);
 }
 
-static irqreturn_t cdu31a_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t cdu31a_interrupt(int irq, void *dev_id)
 {
        unsigned char val;
 
@@ -1339,8 +1338,10 @@ static void do_cdu31a_request(request_queue_t * q)
                }
 
                /* WTF??? */
-               if (!(req->flags & REQ_CMD))
+               if (!blk_fs_request(req)) {
+                       end_request(req, 0);
                        continue;
+               }
                if (rq_data_dir(req) == WRITE) {
                        end_request(req, 0);
                        continue;
@@ -3142,7 +3143,7 @@ int __init cdu31a_init(void)
 
        if (cdu31a_irq > 0) {
                if (request_irq
-                   (cdu31a_irq, cdu31a_interrupt, SA_INTERRUPT,
+                   (cdu31a_irq, cdu31a_interrupt, IRQF_DISABLED,
                     "cdu31a", NULL)) {
                        printk(KERN_WARNING PFX "Unable to grab IRQ%d for "
                                        "the CDU31A driver\n", cdu31a_irq);