diff -ruN linux-2.5.48/arch/i386/kernel/apm.c linux/arch/i386/kernel/apm.c --- linux-2.5.48/arch/i386/kernel/apm.c Mon Nov 18 10:29:21 2002 +++ linux/arch/i386/kernel/apm.c Fri Nov 22 10:55:48 2002 @@ -1969,6 +1969,11 @@ return -ENODEV; } + if(misc_register(&apm_device)){ + printk(KERN_ERR "apm: cannnot register device\n"); + return -EBUSY; + } + if (allow_ints) apm_info.allow_ints = 1; if (broken_psr) @@ -2077,8 +2082,6 @@ return 0; } - misc_register(&apm_device); - if (HZ != 100) idle_period = (idle_period * HZ) / 100; if (idle_threshold < 100) { diff -ruN linux-2.5.48/arch/m68k/bvme6000/rtc.c linux/arch/m68k/bvme6000/rtc.c --- linux-2.5.48/arch/m68k/bvme6000/rtc.c Mon Nov 18 10:29:47 2002 +++ linux/arch/m68k/bvme6000/rtc.c Fri Nov 22 10:06:33 2002 @@ -179,7 +179,10 @@ return -ENODEV; printk(KERN_INFO "DP8570A Real Time Clock Driver v%s\n", RTC_VERSION); - misc_register(&rtc_dev); + if(misc_register(&rtc_dev)){ + printf(KERN_ERR "rtc: cannot register device\n"); + return -EBUSY; + } return 0; } diff -ruN linux-2.5.48/arch/m68k/mvme16x/rtc.c linux/arch/m68k/mvme16x/rtc.c --- linux-2.5.48/arch/m68k/mvme16x/rtc.c Mon Nov 18 10:29:59 2002 +++ linux/arch/m68k/mvme16x/rtc.c Fri Nov 22 10:06:33 2002 @@ -168,7 +168,10 @@ return -ENODEV; printk(KERN_INFO "MK48T08 Real Time Clock Driver v%s\n", RTC_VERSION); - misc_register(&rtc_dev); + if(misc_register(&rtc_dev)){ + printf(KERN_ERR "rtc: cannot register device\n"); + return -EBUSY; + } return 0; } diff -ruN linux-2.5.48/arch/mips64/sgi-ip27/ip27-rtc.c linux/arch/mips64/sgi-ip27/ip27-rtc.c --- linux-2.5.48/arch/mips64/sgi-ip27/ip27-rtc.c Mon Nov 18 10:29:45 2002 +++ linux/arch/mips64/sgi-ip27/ip27-rtc.c Fri Nov 22 10:06:33 2002 @@ -201,8 +201,10 @@ KL_CONFIG_CH_CONS_INFO(nid)->memory_base + IOC3_BYTEBUS_DEV0; printk(KERN_INFO "Real Time Clock Driver v%s\n", RTC_VERSION); - if (misc_register(&rtc_dev)) + if (misc_register(&rtc_dev)){ + printf(KERN_ERR "rtc: cannnot register device\n"); return -ENODEV; + } create_proc_read_entry ("rtc", 0, NULL, rtc_read_proc, NULL); save_flags(flags); diff -ruN linux-2.5.48/arch/parisc/kernel/perf.c linux/arch/parisc/kernel/perf.c --- linux-2.5.48/arch/parisc/kernel/perf.c Mon Nov 18 10:29:31 2002 +++ linux/arch/parisc/kernel/perf.c Fri Nov 22 10:06:33 2002 @@ -518,11 +518,15 @@ return -ENODEV; } + if(misc_register(&perf_dev)){ + printf(KERN_ERR "perf_off: cannot register device\n"); + return -EBUSY; + } + /* Patch the images to match the system */ perf_patch_images(); spin_lock_init(&perf_lock); - misc_register(&perf_dev); /* TODO: this only lets us access the first cpu.. what to do for SMP? */ cpu_device = cpu_data[0].dev; diff -ruN linux-2.5.48/arch/ppc/iSeries/rtc.c linux/arch/ppc/iSeries/rtc.c --- linux-2.5.48/arch/ppc/iSeries/rtc.c Mon Nov 18 10:29:46 2002 +++ linux/arch/ppc/iSeries/rtc.c Fri Nov 22 10:06:33 2002 @@ -192,8 +192,10 @@ static int __init rtc_init(void) { - if (misc_register(&rtc_dev)) + if (misc_register(&rtc_dev)){ + printf(KERN_ERR "rtc: cannot register device\n"); return -ENODEV; + } create_proc_read_entry ("driver/rtc", 0, 0, rtc_read_proc, NULL); printk(KERN_INFO "iSeries Real Time Clock Driver v" RTC_VERSION "\n"); diff -ruN linux-2.5.48/arch/ppc64/kernel/nvram.c linux/arch/ppc64/kernel/nvram.c --- linux-2.5.48/arch/ppc64/kernel/nvram.c Mon Nov 18 10:29:21 2002 +++ linux/arch/ppc64/kernel/nvram.c Fri Nov 22 10:06:33 2002 @@ -116,6 +116,12 @@ { struct device_node *nvram; unsigned int *nbytes_p, proplen; + + if(misc_register(&nvram_dev)){ + printf(KERN_ERR "nvram: cannot register device\n"); + return -EBUSY; + } + if ((nvram = find_type_devices("nvram")) != NULL) { nbytes_p = (unsigned int *)get_property(nvram, "#bytes", &proplen); if (nbytes_p && proplen == sizeof(unsigned int)) { @@ -125,8 +131,7 @@ nvram_fetch = rtas_token("nvram-fetch"); nvram_store = rtas_token("nvram-store"); printk(KERN_INFO "PPC64 nvram contains %d bytes\n", rtas_nvram_size); - - return misc_register(&nvram_dev); + return 0; } void __exit nvram_cleanup(void) diff -ruN linux-2.5.48/arch/ppc64/kernel/rtc.c linux/arch/ppc64/kernel/rtc.c --- linux-2.5.48/arch/ppc64/kernel/rtc.c Mon Nov 18 10:29:47 2002 +++ linux/arch/ppc64/kernel/rtc.c Fri Nov 22 10:06:33 2002 @@ -195,7 +195,11 @@ static int __init rtc_init(void) { - misc_register(&rtc_dev); + if(misc_register(&rtc_dev)){ + printf(KERN_ERR "rtc: cannot register device\n"); + return -EBUSY; + } + create_proc_read_entry ("driver/rtc", 0, 0, rtc_read_proc, NULL); printk(KERN_INFO "i/pSeries Real Time Clock Driver v" RTC_VERSION "\n"); diff -ruN linux-2.5.48/arch/um/drivers/harddog_kern.c linux/arch/um/drivers/harddog_kern.c --- linux-2.5.48/arch/um/drivers/harddog_kern.c Mon Nov 18 10:29:48 2002 +++ linux/arch/um/drivers/harddog_kern.c Fri Nov 22 10:06:33 2002 @@ -166,8 +166,10 @@ ret = misc_register(&harddog_miscdev); - if (ret) + if (ret){ + printf(KERN_ERR "watchdog: cannot register device\n"); return ret; + } printk(banner); diff -ruN linux-2.5.48/arch/v850/kernel/rte_cb_leds.c linux/arch/v850/kernel/rte_cb_leds.c --- linux-2.5.48/arch/v850/kernel/rte_cb_leds.c Mon Nov 18 10:29:23 2002 +++ linux/arch/v850/kernel/rte_cb_leds.c Fri Nov 22 10:06:33 2002 @@ -129,7 +129,11 @@ int __init leds_dev_init (void) { - return misc_register (&leds_miscdev); + if( misc_register (&leds_miscdev)){ + printf(KERN_ERR "leds: cannnot register device\n"); + return -EBUSY; + } + return 0; } __initcall (leds_dev_init); diff -ruN linux-2.5.48/drivers/acorn/char/i2c.c linux/drivers/acorn/char/i2c.c --- linux-2.5.48/drivers/acorn/char/i2c.c Mon Nov 18 10:29:58 2002 +++ linux/drivers/acorn/char/i2c.c Fri Nov 22 10:06:33 2002 @@ -319,7 +319,10 @@ ret = i2c_bit_add_bus(&ioc_ops); if (ret >= 0) - misc_register(&rtc_dev); + if(misc_register(&rtc_dev)){ + printf(KERN_ERR "IOC/IOMD: cannot register device\n"); + return -EBUSY; + } return ret; } diff -ruN linux-2.5.48/drivers/acorn/char/mouse_ps2.c linux/drivers/acorn/char/mouse_ps2.c --- linux-2.5.48/drivers/acorn/char/mouse_ps2.c Mon Nov 18 10:29:51 2002 +++ linux/drivers/acorn/char/mouse_ps2.c Fri Nov 22 10:06:33 2002 @@ -277,6 +277,7 @@ if (misc_register(&psaux_mouse)) { kfree(queue); + printf(KERN_ERR "psaux: cannot register device\n"); return -ENODEV; } diff -ruN linux-2.5.48/drivers/char/acquirewdt.c linux/drivers/char/acquirewdt.c --- linux-2.5.48/drivers/char/acquirewdt.c Mon Nov 18 10:29:48 2002 +++ linux/drivers/char/acquirewdt.c Fri Nov 22 10:06:34 2002 @@ -219,8 +219,10 @@ printk("WDT driver for Acquire single board computer initialising.\n"); spin_lock_init(&acq_lock); - if (misc_register(&acq_miscdev)) + if (misc_register(&acq_miscdev)){ + printf(KERN_ERR "watchdog: cannot register misc device\n"); return -ENODEV; + } if (!request_region(WDT_STOP, 1, "Acquire WDT")) { misc_deregister(&acq_miscdev); diff -ruN linux-2.5.48/drivers/char/advantechwdt.c linux/drivers/char/advantechwdt.c --- linux-2.5.48/drivers/char/advantechwdt.c Mon Nov 18 10:29:31 2002 +++ linux/drivers/char/advantechwdt.c Fri Nov 22 10:06:34 2002 @@ -241,8 +241,10 @@ advwdt_validate_timeout(); spin_lock_init(&advwdt_lock); - if (misc_register(&advwdt_miscdev)) + if (misc_register(&advwdt_miscdev)){ + printf(KERN_ERR "advantechwdt: cannot register misc device on minor\n"); return -ENODEV; + } #if WDT_START != WDT_STOP if (!request_region(WDT_STOP, 1, "Advantech WDT")) { misc_deregister(&advwdt_miscdev); diff -ruN linux-2.5.48/drivers/char/agp/frontend.c linux/drivers/char/agp/frontend.c --- linux-2.5.48/drivers/char/agp/frontend.c Mon Nov 18 10:29:25 2002 +++ linux/drivers/char/agp/frontend.c Fri Nov 22 10:06:34 2002 @@ -1073,7 +1073,7 @@ AGP_LOCK_INIT(); if (misc_register(&agp_miscdev)) { - printk(KERN_ERR PFX "unable to get minor: %d\n", AGPGART_MINOR); + printk(KERN_ERR PFX "unable to register misc device: %d\n", AGPGART_MINOR); return -EIO; } return 0; diff -ruN linux-2.5.48/drivers/char/applicom.c linux/drivers/char/applicom.c --- linux-2.5.48/drivers/char/applicom.c Mon Nov 18 10:29:56 2002 +++ linux/drivers/char/applicom.c Fri Nov 22 10:06:34 2002 @@ -314,7 +314,10 @@ DeviceErrorCount = 0; if (numboards) { - misc_register(&ac_miscdev); + if(misc_register(&ac_miscdev)){ + printf(KERN_ERR "ac.o: Cannot register device\n" ); + return -EBUSY; + } for (i = 0; i < MAX_BOARD; i++) { int serial; char boardname[(SERIAL_NUMBER - TYPE_CARD) + 1]; diff -ruN linux-2.5.48/drivers/char/busmouse.c linux/drivers/char/busmouse.c --- linux-2.5.48/drivers/char/busmouse.c Mon Nov 18 10:29:52 2002 +++ linux/drivers/char/busmouse.c Fri Nov 22 10:06:34 2002 @@ -390,8 +390,13 @@ busmouse_data[msedev] = mse; ret = misc_register(&mse->miscdev); - if (!ret) - ret = msedev; + if(ret){ + up(&mouse_sem); + printf(KERN_ERR "busmouse: cannot register misc device\n"); + return -EBUSY; + } + + ret = msedev; up(&mouse_sem); return ret; diff -ruN linux-2.5.48/drivers/char/ds1620.c linux/drivers/char/ds1620.c --- linux-2.5.48/drivers/char/ds1620.c Mon Nov 18 10:29:22 2002 +++ linux/drivers/char/ds1620.c Fri Nov 22 10:06:34 2002 @@ -375,9 +375,10 @@ ds1620_write_state(&th); - ret = misc_register(&ds1620_miscdev); - if (ret < 0) - return ret; + if(misc_register(&ds1620_miscdev)){ + printf(KERN_ERR "therm: cannot register misc device\n"); + return -EBUSY; + } #ifdef THERM_USE_PROC proc_therm_ds1620 = create_proc_entry("therm", 0, 0); diff -ruN linux-2.5.48/drivers/char/genrtc.c linux/drivers/char/genrtc.c --- linux-2.5.48/drivers/char/genrtc.c Mon Nov 18 10:29:55 2002 +++ linux/drivers/char/genrtc.c Fri Nov 22 10:06:34 2002 @@ -407,7 +407,10 @@ printk(KERN_INFO "Generic RTC Driver v%s\n", RTC_VERSION); - misc_register(&rtc_gen_dev); + if(misc_register(&rtc_gen_dev)){ + printf(KERN_ERR "driver/rtc: cannot register device\n"); + return -EBUSY; + } create_proc_read_entry ("driver/rtc", 0, 0, gen_rtc_read_proc, NULL); return 0; diff -ruN linux-2.5.48/drivers/char/hp_psaux.c linux/drivers/char/hp_psaux.c --- linux-2.5.48/drivers/char/hp_psaux.c Mon Nov 18 10:29:56 2002 +++ linux/drivers/char/hp_psaux.c Fri Nov 22 10:06:34 2002 @@ -513,7 +513,11 @@ queue->head = queue->tail = 0; init_waitqueue_head(&queue->proc_list); - misc_register(&psaux_mouse); + if(misc_register(&psaux_mouse)){ + kfree(queue); + printf(KERN_ERR "psaux: cannot register devcie\n"); + return -EBUSY; + } aux_write_ack(AUX_ENABLE_DEV); /* try it a second time, this will give status if the device is diff -ruN linux-2.5.48/drivers/char/i810-tco.c linux/drivers/char/i810-tco.c --- linux-2.5.48/drivers/char/i810-tco.c Mon Nov 18 10:29:21 2002 +++ linux/drivers/char/i810-tco.c Fri Nov 22 10:06:34 2002 @@ -398,7 +398,7 @@ if (misc_register (&i810tco_miscdev) != 0) { release_region (TCOBASE, 0x10); printk (KERN_ERR TCO_MODULE_NAME ": cannot register miscdev\n"); - return -EIO; + return -EBUSY; } tco_timer_settimer ((unsigned char) i810_margin); tco_timer_reload (); diff -ruN linux-2.5.48/drivers/char/ib700wdt.c linux/drivers/char/ib700wdt.c --- linux-2.5.48/drivers/char/ib700wdt.c Mon Nov 18 10:29:54 2002 +++ linux/drivers/char/ib700wdt.c Fri Nov 22 10:06:34 2002 @@ -271,8 +271,10 @@ ibwdt_validate_timeout(); spin_lock_init(&ibwdt_lock); - if (misc_register(&ibwdt_miscdev)) + if (misc_register(&ibwdt_miscdev)){ + printf(KERN_ERR "watchdog: cannot register device\n"); return -ENODEV; + } #if WDT_START != WDT_STOP if (!request_region(WDT_STOP, 1, "IB700 WDT")) { misc_deregister(&ibwdt_miscdev); diff -ruN linux-2.5.48/drivers/char/mixcomwd.c linux/drivers/char/mixcomwd.c --- linux-2.5.48/drivers/char/mixcomwd.c Mon Nov 18 10:29:29 2002 +++ linux/drivers/char/mixcomwd.c Fri Nov 22 10:06:34 2002 @@ -253,6 +253,7 @@ ret = misc_register(&mixcomwd_miscdev); if (ret) { + printf(KERN_ERR "mixcomwd: Cannot register misc device on minor %d\n", WATCHDOG_MINOR); release_region(watchdog_port, 1); return ret; } diff -ruN linux-2.5.48/drivers/char/nwflash.c linux/drivers/char/nwflash.c --- linux-2.5.48/drivers/char/nwflash.c Mon Nov 18 10:29:58 2002 +++ linux/drivers/char/nwflash.c Fri Nov 22 10:06:34 2002 @@ -688,7 +688,10 @@ printk("Flash ROM driver v.%s, flash device ID 0x%04X, size %d Mb.\n", NWFLASH_VERSION, id, gbFlashSize / (1024 * 1024)); - misc_register(&flash_miscdev); + if(misc_register(&flash_miscdev)){ + printf(KERN_ERR "Flash: cannot register device\n"); + return -EBUSY; + } ret = 0; } diff -ruN linux-2.5.48/drivers/char/pcwd.c linux/drivers/char/pcwd.c --- linux-2.5.48/drivers/char/pcwd.c Mon Nov 18 10:29:22 2002 +++ linux/drivers/char/pcwd.c Fri Nov 22 10:06:34 2002 @@ -622,11 +622,14 @@ outb_p(0xA5, current_readport + 3); } - if (misc_register(&pcwd_miscdev)) + if (misc_register(&pcwd_miscdev)){ + printf(KERN_ERR "pcwd: Cannot register misc device\n"); return -ENODEV; + } if (supports_temp) if (misc_register(&temp_miscdev)) { + printf(KERN_ERR "pcwd: Cannot register misc device\n"); misc_deregister(&pcwd_miscdev); return -ENODEV; } diff -ruN linux-2.5.48/drivers/char/qtronix.c linux/drivers/char/qtronix.c --- linux-2.5.48/drivers/char/qtronix.c Mon Nov 18 10:29:31 2002 +++ linux/drivers/char/qtronix.c Fri Nov 22 10:06:34 2002 @@ -585,7 +585,10 @@ static int __init psaux_init(void) { - misc_register(&psaux_mouse); + if(misc_register(&psaux_mouse)){ + printf(KERN_ERR "psaux: Cannot register misc device on minor\n"); + return -EBUSY; + } queue = (struct aux_queue *) kmalloc(sizeof(*queue), GFP_KERNEL); memset(queue, 0, sizeof(*queue)); queue->head = queue->tail = 0; diff -ruN linux-2.5.48/drivers/char/rio/rio_linux.c linux/drivers/char/rio/rio_linux.c --- linux-2.5.48/drivers/char/rio/rio_linux.c Mon Nov 18 10:29:48 2002 +++ linux/drivers/char/rio/rio_linux.c Fri Nov 22 10:06:34 2002 @@ -1405,8 +1405,8 @@ rio_dprintk (RIO_DEBUG_INIT, "rio: total of %d boards detected.\n", found); if (misc_register(&rio_fw_device) < 0) { - printk(KERN_ERR "RIO: Unable to register firmware loader driver.\n"); - return -EIO; + printk(KERN_ERR "RIO: Can't register misc device.\n"); + return -EBUSY; } rio_init_drivers (); } diff -ruN linux-2.5.48/drivers/char/rtc.c linux/drivers/char/rtc.c --- linux-2.5.48/drivers/char/rtc.c Mon Nov 18 10:29:32 2002 +++ linux/drivers/char/rtc.c Fri Nov 22 10:56:36 2002 @@ -876,13 +876,14 @@ #endif /* __sparc__ vs. others */ if (misc_register(&rtc_dev)) - { + { #if RTC_IRQ free_irq(RTC_IRQ, NULL); #endif release_region(RTC_PORT(0), RTC_IO_EXTENT); + printk(KERN_ERR "rtc: cannot register misc device\n"); return -ENODEV; - } + } create_proc_read_entry ("driver/rtc", 0, 0, rtc_read_proc, NULL); #if defined(__alpha__) || defined(__mips__) diff -ruN linux-2.5.48/drivers/char/scx200_wdt.c linux/drivers/char/scx200_wdt.c --- linux-2.5.48/drivers/char/scx200_wdt.c Mon Nov 18 10:29:49 2002 +++ linux/drivers/char/scx200_wdt.c Fri Nov 22 10:06:34 2002 @@ -245,8 +245,10 @@ sema_init(&open_semaphore, 1); r = misc_register(&scx200_wdt_miscdev); - if (r) + if (r){ + printf(KERN_ERR NAME ": cannot register device\n"); return r; + } r = register_reboot_notifier(&scx200_wdt_notifier); if (r) { diff -ruN linux-2.5.48/drivers/char/softdog.c linux/drivers/char/softdog.c --- linux-2.5.48/drivers/char/softdog.c Mon Nov 18 10:29:32 2002 +++ linux/drivers/char/softdog.c Fri Nov 22 10:06:34 2002 @@ -177,10 +177,10 @@ { int ret; - ret = misc_register(&softdog_miscdev); - - if (ret) - return ret; + if(misc_register(&softdog_miscdev)){ + prinf(KERN_ERR "watchdog: cannot register misc device\n"); + return -EBUSY; + } printk(banner, soft_margin, nowayout); diff -ruN linux-2.5.48/drivers/char/toshiba.c linux/drivers/char/toshiba.c --- linux-2.5.48/drivers/char/toshiba.c Mon Nov 18 10:29:56 2002 +++ linux/drivers/char/toshiba.c Fri Nov 22 10:06:34 2002 @@ -489,7 +489,10 @@ /* register the device file */ - misc_register(&tosh_device); + if(misc_register(&tosh_device)){ + printf(KERN_ERR "toshiba: cannot register device\n"); + return -EBUSY; + } /* register the proc entry */ diff -ruN linux-2.5.48/drivers/char/w83877f_wdt.c linux/drivers/char/w83877f_wdt.c --- linux-2.5.48/drivers/char/w83877f_wdt.c Mon Nov 18 10:29:48 2002 +++ linux/drivers/char/w83877f_wdt.c Fri Nov 22 10:06:34 2002 @@ -336,8 +336,10 @@ timer.data = 0; rc = misc_register(&wdt_miscdev); - if (rc) + if (rc){ + printf(KERN_ERR "watchdog: cannot register misk device\n"); goto err_out_region2; + } rc = register_reboot_notifier(&wdt_notifier); if (rc) diff -ruN linux-2.5.48/drivers/char/wdt285.c linux/drivers/char/wdt285.c --- linux-2.5.48/drivers/char/wdt285.c Mon Nov 18 10:29:28 2002 +++ linux/drivers/char/wdt285.c Fri Nov 22 10:06:34 2002 @@ -169,7 +169,10 @@ if (machine_is_netwinder()) return -ENODEV; - misc_register(&watchdog_miscdev); + if(misc_register(&watchdog_miscdev)){ + printf(KERN_ERR "Footbridge Watchdog Timer: cannot register misc device on minor %d\n", WATCHDOG_MINOR); + return -EBUSY; + } printk("Footbridge Watchdog Timer: 0.01, timer margin: %d sec\n", soft_margin); if (machine_is_cats()) diff -ruN linux-2.5.48/drivers/char/wdt977.c linux/drivers/char/wdt977.c --- linux-2.5.48/drivers/char/wdt977.c Mon Nov 18 10:29:52 2002 +++ linux/drivers/char/wdt977.c Fri Nov 22 10:06:34 2002 @@ -330,7 +330,10 @@ if (!machine_is_netwinder()) return -ENODEV; - misc_register(&wdt977_miscdev); + if(misc_register(&wdt977_miscdev)){ + printf(KERN_ERR "watchdog: cannot register device\n"); + return -EBUSY; + } printk(KERN_INFO "Wdt977 Watchdog sleeping.\n"); return 0; } diff -ruN linux-2.5.48/drivers/input/misc/uinput.c linux/drivers/input/misc/uinput.c --- linux-2.5.48/drivers/input/misc/uinput.c Mon Nov 18 10:29:52 2002 +++ linux/drivers/input/misc/uinput.c Fri Nov 22 10:06:34 2002 @@ -373,7 +373,11 @@ static int __init uinput_init(void) { - return misc_register(&uinput_misc); + if(misc_register(&uinput_misc)){ + printf(KERN_ERR "%s: cannot register device\n", UINPUT_NAME); + return - EBUSY; + }else + return 0; } static void __exit uinput_exit(void) diff -ruN linux-2.5.48/drivers/macintosh/ans-lcd.c linux/drivers/macintosh/ans-lcd.c --- linux-2.5.48/drivers/macintosh/ans-lcd.c Mon Nov 18 10:29:57 2002 +++ linux/drivers/macintosh/ans-lcd.c Fri Nov 22 10:06:34 2002 @@ -148,10 +148,13 @@ if (strcmp(node->parent->name, "gc")) return -ENODEV; + if(misc_register(&anslcd_dev)){ + printf(KERN_ERR "LCD: cannot register device\n"); + return -EBUSY; + } + anslcd_ptr = (volatile unsigned char*)ioremap(ANSLCD_ADDR, 0x20); - misc_register(&anslcd_dev); - #ifdef DEBUG printk(KERN_DEBUG "LCD: init\n"); #endif diff -ruN linux-2.5.48/drivers/macintosh/apm_emu.c linux/drivers/macintosh/apm_emu.c --- linux-2.5.48/drivers/macintosh/apm_emu.c Mon Nov 18 10:29:56 2002 +++ linux/drivers/macintosh/apm_emu.c Fri Nov 22 10:06:34 2002 @@ -526,7 +526,11 @@ if (apm_proc) SET_MODULE_OWNER(apm_proc); - misc_register(&apm_device); + if(misc_register(&apm_device)){ + remove_proc_entry("apm", NULL); + printf(KERN_ERR "apm_emu: cannot regiset device\n"); + return -EBUSY; + } pmu_register_sleep_notifier(&apm_sleep_notifier); diff -ruN linux-2.5.48/drivers/macintosh/nvram.c linux/drivers/macintosh/nvram.c --- linux-2.5.48/drivers/macintosh/nvram.c Mon Nov 18 10:29:22 2002 +++ linux/drivers/macintosh/nvram.c Fri Nov 22 10:06:34 2002 @@ -118,7 +118,10 @@ { printk(KERN_INFO "Macintosh non-volatile memory driver v%s\n", NVRAM_VERSION); - misc_register(&nvram_dev); + if(misc_register(&nvram_dev)){ + printf(KERN_ERR "nvram: cannot register device\n"); + return -EBUSY; + } return 0; } diff -ruN linux-2.5.48/drivers/macintosh/via-pmu68k.c linux/drivers/macintosh/via-pmu68k.c --- linux-2.5.48/drivers/macintosh/via-pmu68k.c Mon Nov 18 10:29:24 2002 +++ linux/drivers/macintosh/via-pmu68k.c Fri Nov 22 10:06:34 2002 @@ -1053,7 +1053,8 @@ void pmu_device_init(void) { if (via) - misc_register(&pmu_device); + if(misc_register(&pmu_device)) + printf(LERN_ERR "pmu: cannot register devie\n"); } #endif /* CONFIG_PMAC_PBOOK */ diff -ruN linux-2.5.48/drivers/message/fusion/mptctl.c linux/drivers/message/fusion/mptctl.c --- linux-2.5.48/drivers/message/fusion/mptctl.c Mon Nov 18 10:29:21 2002 +++ linux/drivers/message/fusion/mptctl.c Fri Nov 22 10:06:34 2002 @@ -3190,7 +3190,7 @@ #endif /*} sparc */ /* Register this device */ - if (misc_register(&mptctl_miscdev) == -1) { + if (misc_register(&mptctl_miscdev)) { printk(KERN_ERR MYNAM ": Can't register misc device [minor=%d].\n", MPT_MINOR); err = -EBUSY; goto out_fail; diff -ruN linux-2.5.48/drivers/message/i2o/i2o_config.c linux/drivers/message/i2o/i2o_config.c --- linux-2.5.48/drivers/message/i2o/i2o_config.c Mon Nov 18 10:29:54 2002 +++ linux/drivers/message/i2o/i2o_config.c Fri Nov 22 10:06:34 2002 @@ -930,7 +930,7 @@ printk(KERN_ERR "i2o_config: no memory for page buffer.\n"); return -ENOBUFS; } - if(misc_register(&i2o_miscdev)==-1) + if(misc_register(&i2o_miscdev)) { printk(KERN_ERR "i2o_config: can't register device.\n"); kfree(page_buf); diff -ruN linux-2.5.48/drivers/net/tun.c linux/drivers/net/tun.c --- linux-2.5.48/drivers/net/tun.c Mon Nov 18 10:29:44 2002 +++ linux/drivers/net/tun.c Fri Nov 22 10:06:34 2002 @@ -586,12 +586,13 @@ int __init tun_init(void) { + printk(KERN_INFO "Universal TUN/TAP device driver %s " "(C)1999-2002 Maxim Krasnyansky\n", TUN_VER); if (misc_register(&tun_miscdev)) { printk(KERN_ERR "tun: Can't register misc device %d\n", TUN_MINOR); - return -EIO; + return -EBUSY; } return 0; diff -ruN linux-2.5.48/drivers/parisc/eisa_eeprom.c linux/drivers/parisc/eisa_eeprom.c --- linux-2.5.48/drivers/parisc/eisa_eeprom.c Mon Nov 18 10:29:53 2002 +++ linux/drivers/parisc/eisa_eeprom.c Fri Nov 22 10:06:34 2002 @@ -98,7 +98,10 @@ { if (addr) { eeprom_addr = addr; - misc_register(&eisa_eeprom_dev); + If(misc_register(&eisa_eeprom_dev)){ + printf(KERN_ERR "eisa eeprom: cannot register device\n"); + return -EBUSY; + } printk(KERN_INFO "EISA EEPROM at 0x%lx\n", eeprom_addr); } return 0; diff -ruN linux-2.5.48/drivers/sbus/char/cpwatchdog.c linux/drivers/sbus/char/cpwatchdog.c --- linux-2.5.48/drivers/sbus/char/cpwatchdog.c Mon Nov 18 10:29:55 2002 +++ linux/drivers/sbus/char/cpwatchdog.c Fri Nov 22 10:06:34 2002 @@ -641,6 +641,7 @@ } if(0 != misc_register(whichmisc)) { + printf(KERN_ERR "%s: cannot register device\n", WD_OBPNAME); return(1); } wd_dev.watchdog[whichdog].regs = whichregs; diff -ruN linux-2.5.48/drivers/sbus/char/envctrl.c linux/drivers/sbus/char/envctrl.c --- linux-2.5.48/drivers/sbus/char/envctrl.c Mon Nov 18 10:29:25 2002 +++ linux/drivers/sbus/char/envctrl.c Fri Nov 22 10:06:34 2002 @@ -1106,8 +1106,7 @@ /* Register the device as a minor miscellaneous device. */ if (misc_register(&envctrl_dev)) { - printk("envctrl: Unable to get misc minor %d\n", - envctrl_dev.minor); + printk("envctrl: Unable to get misc minor %d\n", envctrl_dev.minor); } /* Note above traversal routine post-incremented 'i' to accomodate diff -ruN linux-2.5.48/drivers/sgi/char/ds1286.c linux/drivers/sgi/char/ds1286.c --- linux-2.5.48/drivers/sgi/char/ds1286.c Mon Nov 18 10:29:30 2002 +++ linux/drivers/sgi/char/ds1286.c Fri Nov 22 10:06:34 2002 @@ -349,7 +349,10 @@ int __init ds1286_init(void) { printk(KERN_INFO "DS1286 Real Time Clock Driver v%s\n", DS1286_VERSION); - misc_register(&ds1286_dev); + if(misc_register(&ds1286_dev)){ + printf(KERN_ERR "rtc: cannor register device\n"); + return -EBUSY; + } return 0; } diff -ruN linux-2.5.48/drivers/sgi/char/graphics.c linux/drivers/sgi/char/graphics.c --- linux-2.5.48/drivers/sgi/char/graphics.c Mon Nov 18 10:29:46 2002 +++ linux/drivers/sgi/char/graphics.c Fri Nov 22 10:06:34 2002 @@ -311,8 +311,13 @@ /* This is called later from the misc-init routine */ void __init gfx_register (void) { - misc_register (&dev_graphics); - misc_register (&dev_opengl); + if(misc_register (&dev_graphics)){ + printf(KERN_ERROR "sgi-graphics: cannot register device\n"); + } + if(misc_register (&dev_opengl)){ + misc_deregister(dev_graphics); + printf(KERN_ERROR "sgi-graphics: cannot register device\n"); + } } void __init gfx_init (const char **name) @@ -362,8 +367,15 @@ printk("Boards: %d\n", boards); - misc_register (&dev_graphics); - misc_register (&dev_opengl); + if(misc_register (&dev_graphics)){ + printf(KERN_ERR "sgi-graphics: cannot register device\n"); + return -EBUSY; + } + if(misc_register (&dev_opengl)){ + misc_deregister(dev_graphics); + printf(KERN_ERR "sgi-graphics: cannot register devide\n"); + return -EBUSY; + } return 0; } diff -ruN linux-2.5.48/drivers/sgi/char/streamable.c linux/drivers/sgi/char/streamable.c --- linux-2.5.48/drivers/sgi/char/streamable.c Mon Nov 18 10:29:23 2002 +++ linux/drivers/sgi/char/streamable.c Fri Nov 22 10:06:34 2002 @@ -312,7 +312,19 @@ printk ("streamable misc devices registered (keyb:%d, gfx:%d)\n", SGI_STREAMS_KEYBOARD, SGI_GFX_MINOR); - misc_register (&dev_gfx); - misc_register (&dev_input_keyboard); - misc_register (&dev_input_mouse); + if(misc_register (&dev_gfx)){ + prinf(KERN_ERR "streams-mouse: cannot register device\n"); + return -EBUSY; + } + if(misc_register (&dev_input_keyboard)){ + misc_deregister(&dev_gfx); + prinf(KERN_ERR "streams-mouse: cannot register device\n"); + return -EBUSY; + } + if(misc_register (&dev_input_mouse)){ + misc_deregister(&dev_gfx); + misc_deregister(&dev_keyboard); + prinf(KERN_ERR "streams-mouse: cannot register device\n"); + return -EBUSY; + } } diff -ruN linux-2.5.48/drivers/sgi/char/usema.c linux/drivers/sgi/char/usema.c --- linux-2.5.48/drivers/sgi/char/usema.c Mon Nov 18 10:29:32 2002 +++ linux/drivers/sgi/char/usema.c Fri Nov 22 10:06:34 2002 @@ -178,7 +178,10 @@ { printk("usemaclone misc device registered (minor: %d)\n", SGI_USEMACLONE); - misc_register(&dev_usemaclone); + if(misc_register(&dev_usemaclone)){ + printf(KERN_ERR "usemaclone: cannot register device\n"); + return -EBUSY; + } } EXPORT_SYMBOL(usema_init); diff -ruN linux-2.5.48/net/irda/irnet/irnet_ppp.c linux/net/irda/irnet/irnet_ppp.c --- linux-2.5.48/net/irda/irnet/irnet_ppp.c Mon Nov 18 10:29:51 2002 +++ linux/net/irda/irnet/irnet_ppp.c Fri Nov 22 10:06:34 2002 @@ -1049,7 +1049,9 @@ /* Allocate ourselves as a minor in the misc range */ err = misc_register(&irnet_misc_device); - + if(err) + printf(KERN_ERR "irnet: cannot register device\n"); + DEXIT(MODULE_TRACE, "\n"); return err; }