static int __initdata acer = 0; /* Do acer notebook init? */
static int __initdata sm_games = 0; /* Logitech soundman games? */
-struct sb_card_config *legacy = NULL;
+static struct sb_card_config *legacy = NULL;
#ifdef CONFIG_PNP
static int __initdata pnp = 1;
/* OSS subsystem card registration shared by PnP and legacy routines */
static int sb_register_oss(struct sb_card_config *scc, struct sb_module_options *sbmo)
{
- if(!sb_dsp_detect(&scc->conf, 0, 0, sbmo)) {
+ if (!request_region(scc->conf.io_base, 16, "soundblaster")) {
+ printk(KERN_ERR "sb: ports busy.\n");
+ kfree(scc);
+ return -EBUSY;
+ }
+
+ if (!sb_dsp_detect(&scc->conf, 0, 0, sbmo)) {
+ release_region(scc->conf.io_base, 16);
printk(KERN_ERR "sb: Failed DSP Detect.\n");
kfree(scc);
return -ENODEV;