[Bluetooth] Fix reference count when connection lookup fails
[pandora-kernel.git] / drivers / cdrom / sbpcd.c
index 4760f51..ba50e5a 100644 (file)
 #include <linux/kernel.h>
 #include <linux/cdrom.h>
 #include <linux/ioport.h>
-#include <linux/devfs_fs_kernel.h>
 #include <linux/major.h>
 #include <linux/string.h>
 #include <linux/vmalloc.h>
 #include <asm/io.h>
 #include <asm/uaccess.h>
 #include <stdarg.h>
-#include <linux/config.h>
 #include "sbpcd.h"
 
 #define MAJOR_NR MATSUSHITA_CDROM_MAJOR
@@ -464,8 +462,13 @@ static int sbpcd[] =
 static  __cacheline_aligned DEFINE_SPINLOCK(sbpcd_lock);
 static struct request_queue *sbpcd_queue;
 
-MODULE_PARM(sbpcd, "2i");
-MODULE_PARM(max_drives, "i");
+/* You can only set the first pair, from old MODULE_PARM code.  */
+static int sbpcd_set(const char *val, struct kernel_param *kp)
+{
+       get_options((char *)val, 2, (int *)sbpcd);
+       return 0;
+}
+module_param_call(sbpcd, sbpcd_set, NULL, NULL, 0);
 
 #define NUM_PROBE  (sizeof(sbpcd) / sizeof(int))
 
@@ -553,6 +556,7 @@ static unsigned char msgnum;
 static char msgbuf[80];
 
 static int max_drives = MAX_DRIVES;
+module_param(max_drives, int, 0);
 #ifndef MODULE
 static unsigned char setup_done;
 static const char *str_sb_l = "soundblaster";
@@ -5802,8 +5806,6 @@ int __init sbpcd_init(void)
                return -ENOMEM;
        }
 
-       devfs_mk_dir("sbp");
-
        for (j=0;j<NR_SBPCD;j++)
        {
                struct cdrom_device_info * sbpcd_infop;
@@ -5865,7 +5867,6 @@ int __init sbpcd_init(void)
                disk->fops = &sbpcd_bdops;
                strcpy(disk->disk_name, sbpcd_infop->name);
                disk->flags = GENHD_FL_CD;
-               sprintf(disk->devfs_name, "sbp/c0t%d", p->drv_id);
                p->disk = disk;
                if (register_cdrom(sbpcd_infop))
                {
@@ -5900,7 +5901,6 @@ static void sbpcd_exit(void)
                if (D_S[j].drv_id==-1) continue;
                del_gendisk(D_S[j].disk);
                put_disk(D_S[j].disk);
-               devfs_remove("sbp/c0t%d", j);
                vfree(D_S[j].sbp_buf);
                if (D_S[j].sbp_audsiz>0)
                        vfree(D_S[j].aud_buf);
@@ -5911,7 +5911,6 @@ static void sbpcd_exit(void)
                }
                vfree(D_S[j].sbpcd_infop);
        }
-       devfs_remove("sbp");
        msg(DBG_INF, "%s module released.\n", major_name);
 }