Name: CONFIG_KMOD cleanup Depends: Kmod/kmod.patch.gz Author: Rusty Russell Status: Experimental Class: Cleanup D: This patch removes almost all occurrances of #ifdef CONFIG_KMOD D: from the kernel, by using the new request_module macros from the D: Enhanced kmod macros patch. diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/char/ftape/zftape/zftape-init.c working-2.5.3-pre1-configkmod/drivers/char/ftape/zftape/zftape-init.c --- working-2.5.3-pre1-kmod-mac/drivers/char/ftape/zftape/zftape-init.c Tue Jan 15 17:25:32 2002 +++ working-2.5.3-pre1-configkmod/drivers/char/ftape/zftape/zftape-init.c Wed Jan 16 22:01:38 2002 @@ -289,20 +289,12 @@ */ int zft_cmpr_lock(int try_to_load) { - if (zft_cmpr_ops == NULL) { -#ifdef CONFIG_KMOD - if (try_to_load) { - request_module("zft-compressor"); - if (zft_cmpr_ops == NULL) { - return -ENOSYS; - } - } else { - return -ENOSYS; - } -#else + if (zft_cmpr_ops == NULL && try_to_load) + request_module("zft-compressor"); + + if (zft_cmpr_ops == NULL) return -ENOSYS; -#endif - } + (*zft_cmpr_ops->lock)(); return 0; } diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/char/misc.c working-2.5.3-pre1-configkmod/drivers/char/misc.c --- working-2.5.3-pre1-kmod-mac/drivers/char/misc.c Tue Jan 15 17:25:33 2002 +++ working-2.5.3-pre1-configkmod/drivers/char/misc.c Wed Jan 16 22:01:38 2002 @@ -108,41 +108,33 @@ struct miscdevice *c; int err = -ENODEV; struct file_operations *old_fops, *new_fops = NULL; - - down(&misc_sem); - - c = misc_list.next; - while ((c != &misc_list) && (c->minor != minor)) - c = c->next; - if (c != &misc_list) - new_fops = fops_get(c->fops); - if (!new_fops) { - char modname[20]; - up(&misc_sem); - sprintf(modname, "char-major-%d-%d", MISC_MAJOR, minor); - request_module(modname); + request_module_start("char-major-%d-%d", MISC_MAJOR, minor) { down(&misc_sem); - c = misc_list.next; - while ((c != &misc_list) && (c->minor != minor)) - c = c->next; - if (c == &misc_list || (new_fops = fops_get(c->fops)) == NULL) - goto fail; - } - err = 0; - old_fops = file->f_op; - file->f_op = new_fops; - if (file->f_op->open) { - err=file->f_op->open(inode,file); - if (err) { - fops_put(file->f_op); - file->f_op = fops_get(old_fops); + for (c = misc_list.next; c != &misc_list; c = c->next) { + if (c->minor != minor) + continue; + new_fops = fops_get(c->fops); + if (new_fops) { + /* Found it! */ + err = 0; + old_fops = file->f_op; + file->f_op = new_fops; + if (file->f_op->open) { + err=file->f_op->open(inode, file); + if (err) { + fops_put(file->f_op); + file->f_op=fops_get(old_fops); + } + } + fops_put(old_fops); + break; + } } - } - fops_put(old_fops); -fail: - up(&misc_sem); + up(&misc_sem); + } request_module_end(new_fops); + return err; } diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/char/tty_io.c working-2.5.3-pre1-configkmod/drivers/char/tty_io.c --- working-2.5.3-pre1-kmod-mac/drivers/char/tty_io.c Tue Jan 15 17:25:33 2002 +++ working-2.5.3-pre1-configkmod/drivers/char/tty_io.c Wed Jan 16 22:01:38 2002 @@ -279,12 +279,8 @@ return -EINVAL; /* Eduardo Blanco */ /* Cyrus Durgin */ - if (!(ldiscs[ldisc].flags & LDISC_FLAG_DEFINED)) { - char modname [20]; - sprintf(modname, "tty-ldisc-%d", ldisc); - request_module (modname); - } - if (!(ldiscs[ldisc].flags & LDISC_FLAG_DEFINED)) + if (!request_module_unless(ldiscs[ldisc].flags & LDISC_FLAG_DEFINED, + "tty-ldisc-%d", ldisc)) return -EINVAL; if (tty->ldisc.num == ldisc) diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/fc4/fc_syms.c working-2.5.3-pre1-configkmod/drivers/fc4/fc_syms.c --- working-2.5.3-pre1-kmod-mac/drivers/fc4/fc_syms.c Tue Mar 16 11:11:29 1999 +++ working-2.5.3-pre1-configkmod/drivers/fc4/fc_syms.c Wed Jan 16 22:01:38 2002 @@ -6,8 +6,6 @@ #include #include -#ifdef CONFIG_MODULES - #include #include #include @@ -31,5 +29,3 @@ EXPORT_SYMBOL(fcp_scsi_dev_reset); EXPORT_SYMBOL(fcp_scsi_bus_reset); EXPORT_SYMBOL(fcp_scsi_host_reset); - -#endif /* CONFIG_MODULES */ diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/ide/ide.c working-2.5.3-pre1-configkmod/drivers/ide/ide.c --- working-2.5.3-pre1-kmod-mac/drivers/ide/ide.c Wed Jan 16 10:52:27 2002 +++ working-2.5.3-pre1-configkmod/drivers/ide/ide.c Wed Jan 16 22:01:38 2002 @@ -1877,9 +1877,9 @@ static void ide_probe_module (void) { if (!ide_probe) { -#if defined(CONFIG_KMOD) && defined(CONFIG_BLK_DEV_IDE_MODULE) +#if defined(CONFIG_BLK_DEV_IDE_MODULE) (void) request_module("ide-probe-mod"); -#endif /* (CONFIG_KMOD) && (CONFIG_BLK_DEV_IDE_MODULE) */ +#endif /* (CONFIG_BLK_DEV_IDE_MODULE) */ } else { (void) ide_probe->init(); } @@ -1911,7 +1911,6 @@ return -ENXIO; if (drive->driver == NULL) ide_driver_module(); -#ifdef CONFIG_KMOD if (drive->driver == NULL) { if (drive->media == ide_disk) (void) request_module("ide-disk"); @@ -1926,7 +1925,6 @@ (void) request_module("ide-scsi"); #endif /* defined(CONFIG_BLK_DEV_IDESCSI) && defined(CONFIG_SCSI) */ } -#endif /* CONFIG_KMOD */ while (drive->busy) sleep_on(&drive->wqueue); drive->usage++; diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/md/md.c working-2.5.3-pre1-configkmod/drivers/md/md.c --- working-2.5.3-pre1-kmod-mac/drivers/md/md.c Tue Jan 15 17:25:36 2002 +++ working-2.5.3-pre1-configkmod/drivers/md/md.c Wed Jan 16 22:01:38 2002 @@ -1685,19 +1685,10 @@ return -EINVAL; } - if (!pers[pnum]) - { -#ifdef CONFIG_KMOD - char module_name[80]; - sprintf (module_name, "md-personality-%d", pnum); - request_module (module_name); - if (!pers[pnum]) -#endif - { - printk(KERN_ERR "md: personality %d is not loaded!\n", - pnum); - return -EINVAL; - } + if (!request_module_unless(pers[pnum], "md-personality-%d", pnum)) { + printk(KERN_ERR "md: personality %d is not loaded!\n", + pnum); + return -EINVAL; } if (device_size_calculation(mddev)) diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/media/video/cpia.c working-2.5.3-pre1-configkmod/drivers/media/video/cpia.c --- working-2.5.3-pre1-kmod-mac/drivers/media/video/cpia.c Wed Jan 16 10:52:27 2002 +++ working-2.5.3-pre1-configkmod/drivers/media/video/cpia.c Wed Jan 16 22:01:38 2002 @@ -3265,7 +3265,6 @@ #ifdef CONFIG_VIDEO_CPIA_PP cpia_pp_init(); #endif -#ifdef CONFIG_KMOD #ifdef CONFIG_VIDEO_CPIA_PP_MODULE request_module("cpia_pp"); #endif @@ -3273,7 +3272,6 @@ #ifdef CONFIG_VIDEO_CPIA_USB_MODULE request_module("cpia_usb"); #endif -#endif /* CONFIG_KMOD */ #ifdef CONFIG_VIDEO_CPIA_USB cpia_usb_init(); #endif diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/media/video/cpia_pp.c working-2.5.3-pre1-configkmod/drivers/media/video/cpia_pp.c --- working-2.5.3-pre1-kmod-mac/drivers/media/video/cpia_pp.c Tue Nov 6 11:41:34 2001 +++ working-2.5.3-pre1-configkmod/drivers/media/video/cpia_pp.c Wed Jan 16 22:01:39 2002 @@ -698,7 +698,7 @@ } } } -#if defined(CONFIG_KMOD) && defined(CONFIG_PNP_PARPORT_MODULE) +#if defined(CONFIG_PNP_PARPORT_MODULE) if(parport_enumerate() && !parport_enumerate()->probe_info.model) { request_module("parport_probe"); } diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/media/video/videodev.c working-2.5.3-pre1-configkmod/drivers/media/video/videodev.c --- working-2.5.3-pre1-kmod-mac/drivers/media/video/videodev.c Wed Jan 16 10:52:27 2002 +++ working-2.5.3-pre1-configkmod/drivers/media/video/videodev.c Wed Jan 16 22:01:39 2002 @@ -120,18 +120,13 @@ if(minor>=VIDEO_NUM_DEVICES) return -ENODEV; - lock_kernel(); - vfl=video_device[minor]; - if(vfl==NULL) { - char modname[20]; + lock_kernel(); - sprintf (modname, "char-major-%d-%d", VIDEO_MAJOR, minor); - request_module(modname); - vfl=video_device[minor]; - if (vfl==NULL) { - retval = -ENODEV; - goto error_out; - } + vfl = request_module_unless(video_device[minor], + "char-major-%d-%d", VIDEO_MAJOR, minor); + if (vfl==NULL) { + retval = -ENODEV; + goto error_out; } if(vfl->busy) { retval = -EBUSY; diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/mtd/chips/chipreg.c working-2.5.3-pre1-configkmod/drivers/mtd/chips/chipreg.c --- working-2.5.3-pre1-kmod-mac/drivers/mtd/chips/chipreg.c Fri Oct 5 08:14:59 2001 +++ working-2.5.3-pre1-configkmod/drivers/mtd/chips/chipreg.c Wed Jan 16 22:01:39 2002 @@ -62,11 +62,7 @@ struct mtd_chip_driver *drv; struct mtd_info *ret; - drv = get_mtd_chip_driver(name); - - if (!drv && !request_module(name)) - drv = get_mtd_chip_driver(name); - + drv = request_module_unless(get_mtd_chip_driver(name), "%s", name); if (!drv) return NULL; diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/mtd/nftlcore.c working-2.5.3-pre1-configkmod/drivers/mtd/nftlcore.c --- working-2.5.3-pre1-kmod-mac/drivers/mtd/nftlcore.c Tue Jan 15 17:25:37 2002 +++ working-2.5.3-pre1-configkmod/drivers/mtd/nftlcore.c Wed Jan 16 22:01:39 2002 @@ -935,16 +935,10 @@ { int nftlnum = MINOR(ip->i_rdev) >> NFTL_PARTN_BITS; struct NFTLrecord *thisNFTL; - thisNFTL = NFTLs[nftlnum]; DEBUG(MTD_DEBUG_LEVEL2,"NFTL_open\n"); -#ifdef CONFIG_KMOD - if (!thisNFTL && nftlnum == 0) { - request_module("docprobe"); - thisNFTL = NFTLs[nftlnum]; - } -#endif + thisNFTL = request_module_unless(NFTLs[nftlnum], "docprobe"); if (!thisNFTL) { DEBUG(MTD_DEBUG_LEVEL2,"ENODEV: thisNFTL = %d, minor = %d, ip = %p, fp = %p\n", nftlnum, ip->i_rdev, ip, fp); diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/net/ppp_generic.c working-2.5.3-pre1-configkmod/drivers/net/ppp_generic.c --- working-2.5.3-pre1-kmod-mac/drivers/net/ppp_generic.c Mon Dec 17 16:09:05 2001 +++ working-2.5.3-pre1-configkmod/drivers/net/ppp_generic.c Wed Jan 16 22:01:39 2002 @@ -1903,9 +1903,6 @@ struct ppp_option_data data; void *state; unsigned char ccp_option[CCP_MAX_OPTION_LENGTH]; -#ifdef CONFIG_KMOD - char modname[32]; -#endif err = -EFAULT; if (copy_from_user(&data, (void *) arg, sizeof(data)) @@ -1917,14 +1914,8 @@ || ccp_option[1] < 2 || ccp_option[1] > data.length) goto out; - cp = find_compressor(ccp_option[0]); -#ifdef CONFIG_KMOD - if (cp == 0) { - sprintf(modname, "ppp-compress-%d", ccp_option[0]); - request_module(modname); - cp = find_compressor(ccp_option[0]); - } -#endif /* CONFIG_KMOD */ + cp = request_module_unless(find_compressor(ccp_option[0]), + "ppp-compress-%d", ccp_option[0]); if (cp == 0) goto out; diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/net/wan/comx.c working-2.5.3-pre1-configkmod/drivers/net/wan/comx.c --- working-2.5.3-pre1-kmod-mac/drivers/net/wan/comx.c Fri Sep 14 09:04:43 2001 +++ working-2.5.3-pre1-configkmod/drivers/net/wan/comx.c Wed Jan 16 22:01:39 2002 @@ -681,27 +681,12 @@ free_page((unsigned long)page); return -EINVAL; } - while (hw) { - if (strcmp(hw->name, page) == 0) { - break; - } else { - hw = hw->next; - } - } -#ifdef CONFIG_KMOD - if(!hw && comx_strcasecmp(HWNAME_NONE,page) != 0){ - sprintf(str,"comx-hw-%s",page); - request_module(str); - } - hw=comx_channels; - while (hw) { - if (comx_strcasecmp(hw->name, page) == 0) { - break; - } else { - hw = hw->next; - } - } -#endif + request_module_start("comx-hw-%s", page) { + for (hw = comx_channels; hw; hw = hw->next) + if (strcmp(hw->name, page) == 0) + break; + } request_module_end(hw + || comx_strcasecmp(HWNAME_NONE,page)==0); if (comx_strcasecmp(HWNAME_NONE, page) != 0 && !hw) { free_page((unsigned long)page); @@ -724,28 +709,14 @@ free_page((unsigned long)page); return -EINVAL; } - while (line) { - if (comx_strcasecmp(line->name, page) == 0) { - break; - } else { - line = line->next; - } - } -#ifdef CONFIG_KMOD - if(!line && comx_strcasecmp(PROTONAME_NONE, page) != 0) { - sprintf(str,"comx-proto-%s",page); - request_module(str); - } - line=comx_lines; - while (line) { - if (comx_strcasecmp(line->name, page) == 0) { - break; - } else { - line = line->next; - } - } -#endif + request_module_start("comx-proto-%s", page) { + for (line = comx_lines; line; line = line->next) + if (strcmp(line->name, page) == 0) + break; + } request_module_end(line || comx_strcasecmp(PROTONAME_NONE, + page) == 0); + if (comx_strcasecmp(PROTONAME_NONE, page) != 0 && !line) { free_page((unsigned long)page); return -ENODEV; diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/s390/block/dasd.c working-2.5.3-pre1-configkmod/drivers/s390/block/dasd.c --- working-2.5.3-pre1-kmod-mac/drivers/s390/block/dasd.c Mon Dec 17 16:09:06 2001 +++ working-2.5.3-pre1-configkmod/drivers/s390/block/dasd.c Wed Jan 16 22:01:39 2002 @@ -4067,7 +4067,7 @@ DECLARE_WAIT_QUEUE_HEAD(wait); sleep_on_timeout(&wait,HZ); /* wait in steps of one second */ } - while ( (rc=request_module(name)) != 0 ) { + while ( (rc=request_module("%s", name)) != 0 ) { DECLARE_WAIT_QUEUE_HEAD(wait); printk ( KERN_INFO "request_module returned %d for %s\n", rc, diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/scsi/fcal.c working-2.5.3-pre1-configkmod/drivers/scsi/fcal.c --- working-2.5.3-pre1-kmod-mac/drivers/scsi/fcal.c Sat Feb 10 06:30:23 2001 +++ working-2.5.3-pre1-configkmod/drivers/scsi/fcal.c Wed Jan 16 22:01:39 2002 @@ -93,22 +93,16 @@ int i; tpnt->proc_name = "fcal"; - fcalcount = 0; - for_each_online_fc_channel(fc) - if (fc->posmap) - fcalcount++; - FCALND(("%d channels online\n", fcalcount)) - if (!fcalcount) { -#if defined(MODULE) && defined(CONFIG_FC4_SOCAL_MODULE) && defined(CONFIG_KMOD) - request_module("socal"); - + request_module_start("socal") { + fcalcount = 0; for_each_online_fc_channel(fc) if (fc->posmap) fcalcount++; - if (!fcalcount) -#endif - return 0; - } + FCALND(("%d channels online\n", fcalcount)); + } request_module_end(fcalcount != 0); + if (!fcalcount) + return 0; + for_each_online_fc_channel(fc) { struct Scsi_Host *host; long *ages; diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/scsi/pluto.c working-2.5.3-pre1-configkmod/drivers/scsi/pluto.c --- working-2.5.3-pre1-kmod-mac/drivers/scsi/pluto.c Sat Feb 10 06:30:23 2001 +++ working-2.5.3-pre1-configkmod/drivers/scsi/pluto.c Wed Jan 16 22:01:39 2002 @@ -94,24 +94,18 @@ struct timer_list fc_timer = { function: pluto_detect_timeout }; tpnt->proc_name = "pluto"; - fcscount = 0; - for_each_online_fc_channel(fc) { - if (!fc->posmap) - fcscount++; - } - PLND(("%d channels online\n", fcscount)) - if (!fcscount) { -#if defined(MODULE) && defined(CONFIG_FC4_SOC_MODULE) && defined(CONFIG_KMOD) - request_module("soc"); - + request_module_start("soc") { + fcscount = 0; for_each_online_fc_channel(fc) { if (!fc->posmap) fcscount++; } - if (!fcscount) -#endif - return 0; - } + PLND(("%d channels online\n", fcscount)); + } request_module_end(fcscount != 0); + + if (!fcscount) + return 0; + fcs = (struct ctrl_inquiry *) kmalloc (sizeof (struct ctrl_inquiry) * fcscount, GFP_DMA); if (!fcs) { printk ("PLUTO: Not enough memory to probe\n"); diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/scsi/scsi.c working-2.5.3-pre1-configkmod/drivers/scsi/scsi.c --- working-2.5.3-pre1-kmod-mac/drivers/scsi/scsi.c Tue Jan 15 17:25:42 2002 +++ working-2.5.3-pre1-configkmod/drivers/scsi/scsi.c Wed Jan 16 22:01:39 2002 @@ -2198,10 +2198,8 @@ struct Scsi_Host *shpnt; int out_of_space = 0; -#ifdef CONFIG_KMOD if (scsi_hosts == NULL) request_module("scsi_hostadapter"); -#endif if (tpnt->next) return 1; diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/sound/sound_core.c working-2.5.3-pre1-configkmod/drivers/sound/sound_core.c --- working-2.5.3-pre1-kmod-mac/drivers/sound/sound_core.c Tue Jan 15 17:25:43 2002 +++ working-2.5.3-pre1-configkmod/drivers/sound/sound_core.c Wed Jan 16 22:01:39 2002 @@ -495,8 +495,6 @@ if (s) new_fops = fops_get(s->unit_fops); if (!new_fops) { - char mod[32]; - spin_unlock(&sound_loader_lock); /* * Please, don't change this order or code. @@ -505,10 +503,8 @@ * ALSA toplevel modules for soundcards, thus we need * load them at first. [Jaroslav Kysela ] */ - sprintf(mod, "sound-slot-%i", unit>>4); - request_module(mod); - sprintf(mod, "sound-service-%i-%i", unit>>4, chain); - request_module(mod); + request_module("sound-slot-%i", unit>>4); + request_module("sound-service-%i-%i", unit>>4, chain); spin_lock(&sound_loader_lock); s = __look_for_unit(chain, unit); if (s) diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/sound/soundcard.c working-2.5.3-pre1-configkmod/drivers/sound/soundcard.c --- working-2.5.3-pre1-kmod-mac/drivers/sound/soundcard.c Wed Jan 16 10:52:28 2002 +++ working-2.5.3-pre1-configkmod/drivers/sound/soundcard.c Wed Jan 16 22:01:39 2002 @@ -215,12 +215,10 @@ switch (dev & 0x0f) { case SND_DEV_CTL: dev >>= 4; - if (dev >= 0 && dev < MAX_MIXER_DEV && mixer_devs[dev] == NULL) { - char modname[20]; - sprintf(modname, "mixer%d", dev); - request_module(modname); - } - if (dev && (dev >= num_mixers || mixer_devs[dev] == NULL)) + if (dev < 0 || dev >= MAX_MIXER_DEV) + return -ENXIO; + + if (request_module_unless(mixer_devs[dev], "mixer%d", dev)) return -ENXIO; if (mixer_devs[dev]->owner) @@ -318,12 +316,8 @@ { if (mixdev < 0 || mixdev >= MAX_MIXER_DEV) return -ENXIO; - /* Try to load the mixer... */ - if (mixer_devs[mixdev] == NULL) { - char modname[20]; - sprintf(modname, "mixer%d", mixdev); - request_module(modname); - } + + request_module_unless(mixer_devs[mixdev], "mixer%d", mixdev); if (mixdev >= num_mixers || !mixer_devs[mixdev]) return -ENXIO; if (cmd == SOUND_MIXER_INFO) diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/telephony/phonedev.c working-2.5.3-pre1-configkmod/drivers/telephony/phonedev.c --- working-2.5.3-pre1-kmod-mac/drivers/telephony/phonedev.c Tue Jan 15 17:25:43 2002 +++ working-2.5.3-pre1-configkmod/drivers/telephony/phonedev.c Wed Jan 16 22:04:34 2002 @@ -54,35 +54,25 @@ if (minor >= PHONE_NUM_DEVICES) return -ENODEV; - down(&phone_lock); - p = phone_device[minor]; - if (p) - new_fops = fops_get(p->f_op); - if (!new_fops) { - char modname[32]; - - up(&phone_lock); - sprintf(modname, "char-major-%d-%d", PHONE_MAJOR, minor); - request_module(modname); + request_module_start("char-major-%d-%d", PHONE_MAJOR, minor) { down(&phone_lock); p = phone_device[minor]; - if (p == NULL || (new_fops = fops_get(p->f_op)) == NULL) - { - err=-ENODEV; - goto end; + if (p) { + new_fops = fops_get(p->f_op); + if (new_fops) { + old_fops = file->f_op; + file->f_op = new_fops; + if (p->open) + err = p->open(p, file); /* Tell the device it is open */ + if (err) { + fops_put(file->f_op); + file->f_op = fops_get(old_fops); + } + fops_put(old_fops); + } } - } - old_fops = file->f_op; - file->f_op = new_fops; - if (p->open) - err = p->open(p, file); /* Tell the device it is open */ - if (err) { - fops_put(file->f_op); - file->f_op = fops_get(old_fops); - } - fops_put(old_fops); -end: - up(&phone_lock); + up(&phone_lock); + } request_module_end(new_fops); return err; } diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/drivers/video/fbmem.c working-2.5.3-pre1-configkmod/drivers/video/fbmem.c --- working-2.5.3-pre1-kmod-mac/drivers/video/fbmem.c Wed Jan 16 10:52:28 2002 +++ working-2.5.3-pre1-configkmod/drivers/video/fbmem.c Wed Jan 16 22:01:39 2002 @@ -414,16 +414,6 @@ return err; } -#ifdef CONFIG_KMOD -static void try_to_load(int fb) -{ - char modname[16]; - - sprintf(modname, "fb%d", fb); - request_module(modname); -} -#endif /* CONFIG_KMOD */ - static int fb_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) @@ -494,11 +484,8 @@ return -EINVAL; if (con2fb.framebuffer < 0 || con2fb.framebuffer >= FB_MAX) return -EINVAL; -#ifdef CONFIG_KMOD - if (!registered_fb[con2fb.framebuffer]) - try_to_load(con2fb.framebuffer); -#endif /* CONFIG_KMOD */ - if (!registered_fb[con2fb.framebuffer]) + if (!request_module_unless(registered_fb[con2fb.framebuffer], + "fb%d", con2fb.framebuffer)) return -EINVAL; if (con2fb.console != 0) set_con2fb_map(con2fb.console-1, con2fb.framebuffer); @@ -647,11 +634,8 @@ struct fb_info *info; int res = 0; -#ifdef CONFIG_KMOD - if (!(info = registered_fb[fbidx])) - try_to_load(fbidx); -#endif /* CONFIG_KMOD */ - if (!(info = registered_fb[fbidx])) + info = request_module_unless(registered_fb[fbidx], "fb%d", fbidx); + if (!info) return -ENODEV; if (info->fbops->owner) __MOD_INC_USE_COUNT(info->fbops->owner); diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/fs/block_dev.c working-2.5.3-pre1-configkmod/fs/block_dev.c --- working-2.5.3-pre1-kmod-mac/fs/block_dev.c Tue Jan 15 17:25:47 2002 +++ working-2.5.3-pre1-configkmod/fs/block_dev.c Wed Jan 16 22:01:39 2002 @@ -452,14 +452,8 @@ /* major 0 is used for non-device mounts */ if (major && major < MAX_BLKDEV) { -#ifdef CONFIG_KMOD - if (!blkdevs[major].bdops) { - char name[20]; - sprintf(name, "block-major-%d", major); - request_module(name); - } -#endif - ret = blkdevs[major].bdops; + ret = request_module_unless(blkdevs[major].bdops, + "block-major-%d", major); } return ret; } diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/fs/devices.c working-2.5.3-pre1-configkmod/fs/devices.c --- working-2.5.3-pre1-kmod-mac/fs/devices.c Tue Jan 15 17:25:47 2002 +++ working-2.5.3-pre1-configkmod/fs/devices.c Wed Jan 16 22:01:39 2002 @@ -19,17 +19,8 @@ #include #include #include -#ifdef CONFIG_KMOD #include -#include - -/* serial module kmod load support */ -struct tty_driver *get_tty_driver(kdev_t device); -#define isa_tty_dev(ma) (ma == TTY_MAJOR || ma == TTYAUX_MAJOR) -#define need_serial(ma,mi) (get_tty_driver(mk_kdev(ma,mi)) == NULL) -#endif - struct device_struct { const char * name; struct file_operations * fops; @@ -69,10 +60,17 @@ if (!major || major >= MAX_CHRDEV) return NULL; - read_lock(&chrdevs_lock); - ret = fops_get(chrdevs[major].fops); - read_unlock(&chrdevs_lock); -#ifdef CONFIG_KMOD + request_module_start("char-major-%d", major) { + read_lock(&chrdevs_lock); + ret = fops_get(chrdevs[major].fops); + read_unlock(&chrdevs_lock); + } request_module_end(ret != NULL); + +#if 0 /* FIXME: Old code forced reload of tty device module? --RR */ +extern struct tty_driver *get_tty_driver(kdev_t device); +#define isa_tty_dev(ma) (ma == TTY_MAJOR || ma == TTYAUX_MAJOR) +#define need_serial(ma,mi) (get_tty_driver(MKDEV(ma,mi)) == NULL) + if (ret && isa_tty_dev(major)) { lock_kernel(); if (need_serial(major,minor)) { @@ -82,16 +80,8 @@ } unlock_kernel(); } - if (!ret) { - char name[20]; - sprintf(name, "char-major-%d", major); - request_module(name); - - read_lock(&chrdevs_lock); - ret = fops_get(chrdevs[major].fops); - read_unlock(&chrdevs_lock); - } #endif + return ret; } diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/fs/exec.c working-2.5.3-pre1-configkmod/fs/exec.c --- working-2.5.3-pre1-kmod-mac/fs/exec.c Tue Jan 15 17:25:47 2002 +++ working-2.5.3-pre1-configkmod/fs/exec.c Wed Jan 16 22:01:39 2002 @@ -832,18 +832,15 @@ read_unlock(&binfmt_lock); if (retval != -ENOEXEC) { break; -#ifdef CONFIG_KMOD }else{ #define printable(c) (((c)=='\t') || ((c)=='\n') || (0x20<=(c) && (c)<=0x7e)) - char modname[20]; if (printable(bprm->buf[0]) && printable(bprm->buf[1]) && printable(bprm->buf[2]) && printable(bprm->buf[3])) break; /* -ENOEXEC */ - sprintf(modname, "binfmt-%04x", *(unsigned short *)(&bprm->buf[2])); - request_module(modname); -#endif + request_module("binfmt-%04x", + *(unsigned short *)(&bprm->buf[2])); } } return retval; diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/fs/fat/cvf.c working-2.5.3-pre1-configkmod/fs/fat/cvf.c --- working-2.5.3-pre1-kmod-mac/fs/fat/cvf.c Wed Jul 25 07:23:53 2001 +++ working-2.5.3-pre1-configkmod/fs/fat/cvf.c Wed Jan 16 22:01:39 2002 @@ -143,11 +143,9 @@ #endif } -#ifdef CONFIG_KMOD if(force) if(*force) request_module(force); -#endif if(force) { if(*force) diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/fs/filesystems.c working-2.5.3-pre1-configkmod/fs/filesystems.c --- working-2.5.3-pre1-kmod-mac/fs/filesystems.c Wed Apr 18 16:23:12 2001 +++ working-2.5.3-pre1-configkmod/fs/filesystems.c Wed Jan 16 22:01:39 2002 @@ -23,8 +23,8 @@ lock_kernel(); - if (nfsd_linkage || - (request_module ("nfsd") == 0 && nfsd_linkage)) + request_module_unless(nfsd_linkage, "nfsd"); + if (nfsd_linkage) ret = nfsd_linkage->do_nfsservctl(cmd, argp, resp); unlock_kernel(); diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/fs/lockd/lockd_syms.c working-2.5.3-pre1-configkmod/fs/lockd/lockd_syms.c --- working-2.5.3-pre1-kmod-mac/fs/lockd/lockd_syms.c Tue Oct 2 06:45:47 2001 +++ working-2.5.3-pre1-configkmod/fs/lockd/lockd_syms.c Wed Jan 16 22:01:39 2002 @@ -12,8 +12,6 @@ #include #include -#ifdef CONFIG_MODULES - #include #include #include @@ -34,5 +32,3 @@ /* NFS server entry points/hooks */ EXPORT_SYMBOL(nlmsvc_invalidate_client); EXPORT_SYMBOL(nlmsvc_ops); - -#endif /* CONFIG_MODULES */ diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/fs/nls/nls_base.c working-2.5.3-pre1-configkmod/fs/nls/nls_base.c --- working-2.5.3-pre1-kmod-mac/fs/nls/nls_base.c Tue Jan 15 17:25:48 2002 +++ working-2.5.3-pre1-configkmod/fs/nls/nls_base.c Wed Jan 16 22:01:39 2002 @@ -214,32 +214,7 @@ struct nls_table *load_nls(char *charset) { - struct nls_table *nls; -#ifdef CONFIG_KMOD - char buf[40]; - int ret; -#endif - - nls = find_nls(charset); - if (nls) - return nls; - -#ifdef CONFIG_KMOD - if (strlen(charset) > sizeof(buf) - sizeof("nls_")) { - printk("Unable to load NLS charset %s: name too long\n", - charset); - return NULL; - } - - sprintf(buf, "nls_%s", charset); - ret = request_module(buf); - if (ret != 0) { - printk("Unable to load NLS charset %s\n", charset); - return NULL; - } - nls = find_nls(charset); -#endif - return nls; + return request_module_unless(find_nls(charset), "nls_%s", charset); } void unload_nls(struct nls_table *nls) diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/fs/super.c working-2.5.3-pre1-configkmod/fs/super.c --- working-2.5.3-pre1-kmod-mac/fs/super.c Tue Jan 15 17:25:50 2002 +++ working-2.5.3-pre1-configkmod/fs/super.c Wed Jan 16 22:01:39 2002 @@ -238,19 +238,14 @@ struct file_system_type *get_fs_type(const char *name) { struct file_system_type *fs; - - read_lock(&file_systems_lock); - fs = *(find_filesystem(name)); - if (fs && !try_inc_mod_count(fs->owner)) - fs = NULL; - read_unlock(&file_systems_lock); - if (!fs && (request_module(name) == 0)) { + + request_module_start("%s", name) { read_lock(&file_systems_lock); fs = *(find_filesystem(name)); if (fs && !try_inc_mod_count(fs->owner)) fs = NULL; read_unlock(&file_systems_lock); - } + } request_module_end(fs); return fs; } diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/kernel/exec_domain.c working-2.5.3-pre1-configkmod/kernel/exec_domain.c --- working-2.5.3-pre1-kmod-mac/kernel/exec_domain.c Mon Dec 17 16:09:13 2001 +++ working-2.5.3-pre1-configkmod/kernel/exec_domain.c Wed Jan 16 22:01:39 2002 @@ -79,33 +79,20 @@ struct exec_domain * ep; u_long pers = personality(personality); - read_lock(&exec_domains_lock); - for (ep = exec_domains; ep; ep = ep->next) { - if (pers >= ep->pers_low && pers <= ep->pers_high) - if (try_inc_mod_count(ep->module)) - goto out; - } - -#ifdef CONFIG_KMOD - read_unlock(&exec_domains_lock); - { - char buffer[30]; - sprintf(buffer, "personality-%ld", pers); - request_module(buffer); - } - read_lock(&exec_domains_lock); - - for (ep = exec_domains; ep; ep = ep->next) { - if (pers >= ep->pers_low && pers <= ep->pers_high) - if (try_inc_mod_count(ep->module)) - goto out; - } -#endif + request_module_start("personality-%ld", pers) { + read_lock(&exec_domains_lock); + for (ep = exec_domains; ep; ep = ep->next) { + if (pers >= ep->pers_low && pers <= ep->pers_high) { + if (try_inc_mod_count(ep->module)) { + read_unlock(&exec_domains_lock); + return ep; + } + } + } + read_unlock(&exec_domains_lock); + } request_module_end(ep != NULL); - ep = &default_exec_domain; -out: - read_unlock(&exec_domains_lock); - return (ep); + return &default_exec_domain; } int diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/kernel/module.c working-2.5.3-pre1-configkmod/kernel/module.c --- working-2.5.3-pre1-kmod-mac/kernel/module.c Tue Nov 27 16:53:42 2001 +++ working-2.5.3-pre1-configkmod/kernel/module.c Wed Jan 16 22:01:39 2002 @@ -195,12 +195,7 @@ */ const void *inter_module_get_request(const char *im_name, const char *modname) { - const void *result = inter_module_get(im_name); - if (!result) { - request_module(modname); - result = inter_module_get(im_name); - } - return(result); + return request_module_unless(inter_module_get(im_name), "%s", modname); } /** diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/bluetooth/af_bluetooth.c working-2.5.3-pre1-configkmod/net/bluetooth/af_bluetooth.c --- working-2.5.3-pre1-kmod-mac/net/bluetooth/af_bluetooth.c Sat Sep 8 02:28:38 2001 +++ working-2.5.3-pre1-configkmod/net/bluetooth/af_bluetooth.c Wed Jan 16 22:01:39 2002 @@ -82,15 +82,7 @@ if (proto > BLUEZ_MAX_PROTO) return -EINVAL; -#if defined(CONFIG_KMOD) - if (!bluez_sock[proto]) { - char module_name[30]; - sprintf(module_name, "bt-proto-%d", proto); - request_module(module_name); - } -#endif - - if (!bluez_sock[proto]) + if (!request_module_unless(bluez_sock[proto], "bt-proto-%d", proto)) return -ENOENT; return bluez_sock[proto]->create(sock, proto); diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/core/dev.c working-2.5.3-pre1-configkmod/net/core/dev.c --- working-2.5.3-pre1-kmod-mac/net/core/dev.c Tue Nov 27 16:53:43 2001 +++ working-2.5.3-pre1-configkmod/net/core/dev.c Wed Jan 16 22:01:39 2002 @@ -649,7 +649,7 @@ void dev_load(const char *name) { if (!dev_get(name) && capable(CAP_SYS_MODULE)) - request_module(name); + request_module("%s", name); } #else diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/decnet/dn_dev.c working-2.5.3-pre1-configkmod/net/decnet/dn_dev.c --- working-2.5.3-pre1-kmod-mac/net/decnet/dn_dev.c Wed Jan 16 10:52:31 2002 +++ working-2.5.3-pre1-configkmod/net/decnet/dn_dev.c Wed Jan 16 22:01:39 2002 @@ -426,9 +426,7 @@ return -EFAULT; ifr->ifr_name[IFNAMSIZ-1] = 0; -#ifdef CONFIG_KMOD dev_load(ifr->ifr_name); -#endif switch(cmd) { case SIOCGIFADDR: diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/ipv4/af_inet.c working-2.5.3-pre1-configkmod/net/ipv4/af_inet.c --- working-2.5.3-pre1-kmod-mac/net/ipv4/af_inet.c Wed Jan 16 10:52:31 2002 +++ working-2.5.3-pre1-configkmod/net/ipv4/af_inet.c Wed Jan 16 22:01:39 2002 @@ -877,11 +877,7 @@ case SIOCGIFBR: case SIOCSIFBR: #if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) -#ifdef CONFIG_KMOD - if (br_ioctl_hook == NULL) - request_module("bridge"); -#endif - if (br_ioctl_hook != NULL) + if (request_module_unless(br_ioctl_hook, "bridge")) return br_ioctl_hook(arg); #endif return -ENOPKG; @@ -889,11 +885,7 @@ case SIOCGIFVLAN: case SIOCSIFVLAN: #if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE) -#ifdef CONFIG_KMOD - if (vlan_ioctl_hook == NULL) - request_module("8021q"); -#endif - if (vlan_ioctl_hook != NULL) + if (request_module_unless(vlan_ioctl_hook, "8021q")) return vlan_ioctl_hook(arg); #endif return -ENOPKG; @@ -916,13 +908,7 @@ #endif #ifdef CONFIG_DLCI_MODULE - -#ifdef CONFIG_KMOD - if (dlci_ioctl_hook == NULL) - request_module("dlci"); -#endif - - if (dlci_ioctl_hook) { + if (request_module_unless(dlci_ioctl_hook, "dlci")) { lock_kernel(); err = (*dlci_ioctl_hook)(cmd, (void *) arg); unlock_kernel(); diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/ipv4/devinet.c working-2.5.3-pre1-configkmod/net/ipv4/devinet.c --- working-2.5.3-pre1-kmod-mac/net/ipv4/devinet.c Wed Jan 16 10:52:31 2002 +++ working-2.5.3-pre1-configkmod/net/ipv4/devinet.c Wed Jan 16 22:01:39 2002 @@ -484,9 +484,7 @@ if (colon) *colon = 0; -#ifdef CONFIG_KMOD dev_load(ifr.ifr_name); -#endif switch(cmd) { case SIOCGIFADDR: /* Get interface address */ diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/ipv4/netfilter/ip_tables.c working-2.5.3-pre1-configkmod/net/ipv4/netfilter/ip_tables.c --- working-2.5.3-pre1-kmod-mac/net/ipv4/netfilter/ip_tables.c Tue Nov 6 11:41:43 2001 +++ working-2.5.3-pre1-configkmod/net/ipv4/netfilter/ip_tables.c Wed Jan 16 22:01:39 2002 @@ -430,9 +430,6 @@ return ret; } -#ifndef CONFIG_KMOD -#define find_inlist_lock(h,n,p,e,m) find_inlist_lock_noload((h),(n),(e),(m)) -#else static void * find_inlist_lock(struct list_head *head, const char *name, @@ -442,19 +439,12 @@ { void *ret; - ret = find_inlist_lock_noload(head, name, error, mutex); - if (!ret) { - char modulename[IPT_FUNCTION_MAXNAMELEN + strlen(prefix) + 1]; - strcpy(modulename, prefix); - strcat(modulename, name); - duprintf("find_inlist: loading `%s'.\n", modulename); - request_module(modulename); + request_module_start("%s%s", prefix, name) { ret = find_inlist_lock_noload(head, name, error, mutex); - } + } request_module_end(ret != NULL); return ret; } -#endif static inline struct ipt_table * find_table_lock(const char *name, int *error, struct semaphore *mutex) diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/ipv6/netfilter/ip6_tables.c working-2.5.3-pre1-configkmod/net/ipv6/netfilter/ip6_tables.c --- working-2.5.3-pre1-kmod-mac/net/ipv6/netfilter/ip6_tables.c Tue Nov 6 11:41:44 2001 +++ working-2.5.3-pre1-configkmod/net/ipv6/netfilter/ip6_tables.c Wed Jan 16 22:01:39 2002 @@ -477,9 +477,6 @@ return ret; } -#ifndef CONFIG_KMOD -#define find_inlist_lock(h,n,p,e,m) find_inlist_lock_noload((h),(n),(e),(m)) -#else static void * find_inlist_lock(struct list_head *head, const char *name, @@ -489,19 +486,12 @@ { void *ret; - ret = find_inlist_lock_noload(head, name, error, mutex); - if (!ret) { - char modulename[IP6T_FUNCTION_MAXNAMELEN + strlen(prefix) + 1]; - strcpy(modulename, prefix); - strcat(modulename, name); - duprintf("find_inlist: loading `%s'.\n", modulename); - request_module(modulename); + request_module_start("%s%s", prefix, name) { ret = find_inlist_lock_noload(head, name, error, mutex); - } + } request_module_end(ret != NULL); return ret; } -#endif static inline struct ip6t_table * find_table_lock(const char *name, int *error, struct semaphore *mutex) diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/irda/irda_device.c working-2.5.3-pre1-configkmod/net/irda/irda_device.c --- working-2.5.3-pre1-kmod-mac/net/irda/irda_device.c Tue Jan 15 17:25:53 2002 +++ working-2.5.3-pre1-configkmod/net/irda/irda_device.c Wed Jan 16 22:01:39 2002 @@ -474,14 +474,7 @@ ASSERT(dev != NULL, return NULL;); -#ifdef CONFIG_KMOD - { - char modname[32]; - /* Try to load the module needed */ - sprintf(modname, "irda-dongle-%d", type); - request_module(modname); - } -#endif /* CONFIG_KMOD */ + request_module("irda-dongle-%d", type); if (!(reg = hashbin_find(dongles, type, NULL))) { ERROR("IrDA: Unable to find requested dongle\n"); diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/packet/af_packet.c working-2.5.3-pre1-configkmod/net/packet/af_packet.c --- working-2.5.3-pre1-kmod-mac/net/packet/af_packet.c Wed Jan 16 10:52:32 2002 +++ working-2.5.3-pre1-configkmod/net/packet/af_packet.c Wed Jan 16 22:01:39 2002 @@ -1492,11 +1492,7 @@ case SIOCSIFBR: #if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) #ifdef CONFIG_INET -#ifdef CONFIG_KMOD - if (br_ioctl_hook == NULL) - request_module("bridge"); -#endif - if (br_ioctl_hook != NULL) + if (request_module_unless(br_ioctl_hook, "bridge")) return br_ioctl_hook(arg); #endif #endif diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/sched/cls_api.c working-2.5.3-pre1-configkmod/net/sched/cls_api.c --- working-2.5.3-pre1-kmod-mac/net/sched/cls_api.c Wed Jan 16 10:52:32 2002 +++ working-2.5.3-pre1-configkmod/net/sched/cls_api.c Wed Jan 16 22:01:39 2002 @@ -198,19 +198,11 @@ err = -ENOBUFS; if ((tp = kmalloc(sizeof(*tp), GFP_KERNEL)) == NULL) goto errout; - tp_ops = tcf_proto_lookup_ops(tca[TCA_KIND-1]); -#ifdef CONFIG_KMOD - if (tp_ops==NULL && tca[TCA_KIND-1] != NULL) { - struct rtattr *kind = tca[TCA_KIND-1]; - char module_name[4 + IFNAMSIZ + 1]; + request_module_start("cls_%s", + (char*)RTA_DATA(tca[TCA_KIND-1])) { + tp_ops = tcf_proto_lookup_ops(tca[TCA_KIND-1]); + } request_module_end(tp_ops || RTA_PAYLOAD(kind) > IFNAMSIZ); - if (RTA_PAYLOAD(kind) <= IFNAMSIZ) { - sprintf(module_name, "cls_%s", (char*)RTA_DATA(kind)); - request_module (module_name); - tp_ops = tcf_proto_lookup_ops(kind); - } - } -#endif if (tp_ops == NULL) { err = -EINVAL; kfree(tp); diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/sched/sch_api.c working-2.5.3-pre1-configkmod/net/sched/sch_api.c --- working-2.5.3-pre1-kmod-mac/net/sched/sch_api.c Wed Jan 16 10:52:32 2002 +++ working-2.5.3-pre1-configkmod/net/sched/sch_api.c Wed Jan 16 22:01:39 2002 @@ -392,18 +392,9 @@ struct Qdisc_ops *ops; int size; - ops = qdisc_lookup_ops(kind); -#ifdef CONFIG_KMOD - if (ops==NULL && tca[TCA_KIND-1] != NULL) { - char module_name[4 + IFNAMSIZ + 1]; - - if (RTA_PAYLOAD(kind) <= IFNAMSIZ) { - sprintf(module_name, "sch_%s", (char*)RTA_DATA(kind)); - request_module (module_name); - ops = qdisc_lookup_ops(kind); - } - } -#endif + request_module_start("sch_%s", (char*)RTA_DATA(kind)) { + ops = qdisc_lookup_ops(kind); + } request_module_end(ops != NULL || RTA_PAYLOAD(kind) > IFNAMSIZ); err = -EINVAL; if (ops == NULL) diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal working-2.5.3-pre1-kmod-mac/net/socket.c working-2.5.3-pre1-configkmod/net/socket.c --- working-2.5.3-pre1-kmod-mac/net/socket.c Wed Jan 16 10:52:32 2002 +++ working-2.5.3-pre1-configkmod/net/socket.c Wed Jan 16 22:01:39 2002 @@ -856,7 +856,7 @@ family = PF_PACKET; } -#if defined(CONFIG_KMOD) && defined(CONFIG_NET) +#if defined(CONFIG_NET) /* Attempt to load a protocol module if the find failed. * * 12/09/1996 Marcin: But! this makes REALLY only sense, if the user @@ -864,11 +864,7 @@ * Otherwise module support will break! */ if (net_families[family]==NULL) - { - char module_name[30]; - sprintf(module_name,"net-pf-%d",family); - request_module(module_name); - } + request_module("net-pf-%d", family); #endif net_family_read_lock();