lkml.org 
[lkml]   [2003]   [Oct]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH 2.6.0-test8] MODULE_ALIAS_BLOCK

Hi Rusty,

Automatic loading of the loop device does not work under 2.6.0-test8
unless the loop device is explicitly mentioned in /etc/modules.conf.
This shows up when doing a kernel make install: mkinitrd uses the
loopback device.

This is because loop.c does not have MODULE_ALIAS_BLOCKDEV.
After adding that, the following problem shows: a mismatch between
the use of request_module in drivers/block/genhd.c:

request_module("block-major-%d", MAJOR(dev));

and the definition of MODULE_ALIAS_BLOCK in blkdev.h:

MODULE_ALIAS("block-major-" __stringify(major) "-*")

The following patch applies to 2.6.0-test8. I tested under (mostly) RH9 that
automatic loading of loop.ko works with this patch but not without it.
The only other user of MODULE_ALIAS_BLOCK, floppy.c, also worked for
me with this patch, no idea whether it works without.

Regards,
Erik


diff -r -U3 2.6.0-test8/drivers/block/loop.c 2.6.0-test8-play/drivers/block/loop.c
--- 2.6.0-test8/drivers/block/loop.c 2003-10-18 10:01:44.000000000 +0200
+++ 2.6.0-test8-play/drivers/block/loop.c 2003-10-19 20:48:15.000000000 +0200
@@ -55,6 +55,7 @@
#include <linux/errno.h>
#include <linux/major.h>
#include <linux/wait.h>
+#include <linux/blkdev.h>
#include <linux/blkpg.h>
#include <linux/init.h>
#include <linux/devfs_fs_kernel.h>
@@ -1124,6 +1125,7 @@
MODULE_PARM(max_loop, "i");
MODULE_PARM_DESC(max_loop, "Maximum number of loop devices (1-256)");
MODULE_LICENSE("GPL");
+MODULE_ALIAS_BLOCKDEV_MAJOR(LOOP_MAJOR);

int loop_register_transfer(struct loop_func_table *funcs)
{
diff -r -U3 2.6.0-test8/include/linux/blkdev.h 2.6.0-test8-play/include/linux/blkdev.h
--- 2.6.0-test8/include/linux/blkdev.h 2003-10-18 10:00:05.000000000 +0200
+++ 2.6.0-test8-play/include/linux/blkdev.h 2003-10-19 22:52:04.000000000 +0200
@@ -678,7 +678,7 @@
#define MODULE_ALIAS_BLOCKDEV(major,minor) \
MODULE_ALIAS("block-major-" __stringify(major) "-" __stringify(minor))
#define MODULE_ALIAS_BLOCKDEV_MAJOR(major) \
- MODULE_ALIAS("block-major-" __stringify(major) "-*")
+ MODULE_ALIAS("block-major-" __stringify(major))


#endif
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:58    [W:0.049 / U:0.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site