diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2005-12-13 16:19:43 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-12-13 16:19:43 -0800 |
commit | c04f139e013e7a704395d932892433c6c17c994f (patch) | |
tree | 48feddda32568647fff7de09022f10419d067f7b /driver | |
parent | 20a8938ee8790f76f60e79560f22a01078e31d68 (diff) | |
download | patches-c04f139e013e7a704395d932892433c6c17c994f.tar.gz |
updated ide modalias patch from kay
Diffstat (limited to 'driver')
-rw-r--r-- | driver/ide-modalias-support-for-autoloading-of-ide-cd-ide-disk.patch | 134 |
1 files changed, 73 insertions, 61 deletions
diff --git a/driver/ide-modalias-support-for-autoloading-of-ide-cd-ide-disk.patch b/driver/ide-modalias-support-for-autoloading-of-ide-cd-ide-disk.patch index 6e2f4696d06df..2ea4ccb72986c 100644 --- a/driver/ide-modalias-support-for-autoloading-of-ide-cd-ide-disk.patch +++ b/driver/ide-modalias-support-for-autoloading-of-ide-cd-ide-disk.patch @@ -1,13 +1,31 @@ -From akpm@osdl.org Sun Dec 4 15:17:42 2005 +From kay.sievers@vrfy.org Mon Dec 12 10:16:27 2005 +Date: Mon, 12 Dec 2005 18:03:44 +0100 From: Kay Sievers <kay.sievers@vrfy.org> +To: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> +Cc: "gregkh@suse.de" <gregkh@suse.de>, akpm@osdl.org Subject: ide: MODALIAS support for autoloading of ide-cd, ide-disk, ... -To: kay.sievers@vrfy.org, B.Zolnierkiewicz@elka.pw.edu.pl, greg@kroah.com, kay.sievers@suse.de -Message-Id: <200512042313.jB4NDLLW019192@shell0.pdx.osdl.net> -Date: Sun, 04 Dec 2005 15:13:11 -0800 +Message-ID: <20051212170344.GA24300@vrfy.org> +Content-Disposition: inline +IDE: MODALIAS support for autoloading of ide-cd, ide-disk, ... -Add MODULE_ALIAS to IDE midlayer modules to autoload them depending -on the probed media type. +Add MODULE_ALIAS to IDE midlayer modules: ide-disk, ide-cd, ide-floppy and +ide-tape, to autoload these modules depending on the probed media type of +the IDE device. + +It is used by udev and replaces the former agent shell script of the hotplug +package, which was required to lookup the media type in the proc filesystem. +Using proc was racy, cause the media file is created after the hotplug event +is sent out. + +The module autoloading does not take any effect, until something like the +following udev rule is configured: + SUBSYSTEM=="ide", ACTION=="add", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}" + +The module ide-scsi will not be autoloaded, cause it requires manual +configuration. It can't be, and never was supported for automatic setup in +the hotplug package. Adding a MODULE_ALIAS to ide-scsi for all supported +media types, would just lead to a default blacklist entry anyway. $ modinfo ide-disk filename: /lib/modules/2.6.15-rc4-g1b0997f5/kernel/drivers/ide/ide-disk.ko @@ -17,7 +35,7 @@ on the probed media type. ... $ modprobe -vn ide:m-disk - insmod /lib/modules/2.6.15-rc4-g1b0997f5/kernel/drivers/ide/ide-disk.ko + insmod /lib/modules/2.6.15-rc4-g1b0997f5/kernel/drivers/ide/ide-disk.ko $ cat /sys/bus/ide/devices/0.0/modalias ide:m-disk @@ -40,20 +58,58 @@ It also adds attributes to the IDE device: disk Signed-off-by: Kay Sievers <kay.sievers@suse.de> -Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> -Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- drivers/ide/ide-cd.c | 1 drivers/ide/ide-disk.c | 1 drivers/ide/ide-floppy.c | 1 drivers/ide/ide-tape.c | 1 - drivers/ide/ide.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++ - 5 files changed, 68 insertions(+) + drivers/ide/ide.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++ + 5 files changed, 64 insertions(+) +--- gregkh-2.6.orig/drivers/ide/ide-cd.c ++++ gregkh-2.6/drivers/ide/ide-cd.c +@@ -3516,6 +3516,7 @@ static int __init ide_cdrom_init(void) + return driver_register(&ide_cdrom_driver.gen_driver); + } + ++MODULE_ALIAS("ide:*m-cdrom*"); + module_init(ide_cdrom_init); + module_exit(ide_cdrom_exit); + MODULE_LICENSE("GPL"); +--- gregkh-2.6.orig/drivers/ide/ide-disk.c ++++ gregkh-2.6/drivers/ide/ide-disk.c +@@ -1271,6 +1271,7 @@ static int __init idedisk_init(void) + return driver_register(&idedisk_driver.gen_driver); + } + ++MODULE_ALIAS("ide:*m-disk*"); + module_init(idedisk_init); + module_exit(idedisk_exit); + MODULE_LICENSE("GPL"); +--- gregkh-2.6.orig/drivers/ide/ide-floppy.c ++++ gregkh-2.6/drivers/ide/ide-floppy.c +@@ -2197,6 +2197,7 @@ static int __init idefloppy_init(void) + return driver_register(&idefloppy_driver.gen_driver); + } + ++MODULE_ALIAS("ide:*m-floppy*"); + module_init(idefloppy_init); + module_exit(idefloppy_exit); + MODULE_LICENSE("GPL"); +--- gregkh-2.6.orig/drivers/ide/ide-tape.c ++++ gregkh-2.6/drivers/ide/ide-tape.c +@@ -4947,6 +4947,7 @@ out: + return error; + } + ++MODULE_ALIAS("ide:*m-tape*"); + module_init(idetape_init); + module_exit(idetape_exit); + MODULE_ALIAS_CHARDEV_MAJOR(IDETAPE_MAJOR); --- gregkh-2.6.orig/drivers/ide/ide.c +++ gregkh-2.6/drivers/ide/ide.c -@@ -1904,9 +1904,73 @@ static int ide_bus_match(struct device * +@@ -1904,9 +1904,69 @@ static int ide_bus_match(struct device * return 1; } @@ -75,19 +131,19 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +static ssize_t media_show(struct device *dev, struct device_attribute *attr, char *buf) +{ -+ ide_drive_t *drive = dev->driver_data; ++ ide_drive_t *drive = to_ide_device(dev); + return sprintf(buf, "%s\n", media_string(drive)); +} + +static ssize_t drivename_show(struct device *dev, struct device_attribute *attr, char *buf) +{ -+ ide_drive_t *drive = dev->driver_data; ++ ide_drive_t *drive = to_ide_device(dev); + return sprintf(buf, "%s\n", drive->name); +} + +static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, char *buf) +{ -+ ide_drive_t *drive = dev->driver_data; ++ ide_drive_t *drive = to_ide_device(dev); + return sprintf(buf, "ide:m-%s\n", media_string(drive)); +} + @@ -101,20 +157,16 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> +static int ide_uevent(struct device *dev, char **envp, int num_envp, + char *buffer, int buffer_size) +{ -+ ide_drive_t *drive = dev->driver_data; ++ ide_drive_t *drive = to_ide_device(dev); + int i = 0; + int length = 0; + + add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length, + "MEDIA=%s", media_string(drive)); -+ + add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length, + "DRIVENAME=%s", drive->name); -+ + add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length, -+ "MODALIAS=ide:m-%s", -+ media_string(drive)); -+ ++ "MODALIAS=ide:m-%s", media_string(drive)); + envp[i] = NULL; + return 0; +} @@ -127,43 +179,3 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> .suspend = generic_ide_suspend, .resume = generic_ide_resume, }; ---- gregkh-2.6.orig/drivers/ide/ide-cd.c -+++ gregkh-2.6/drivers/ide/ide-cd.c -@@ -3516,6 +3516,7 @@ static int __init ide_cdrom_init(void) - return driver_register(&ide_cdrom_driver.gen_driver); - } - -+MODULE_ALIAS("ide:*m-cdrom*"); - module_init(ide_cdrom_init); - module_exit(ide_cdrom_exit); - MODULE_LICENSE("GPL"); ---- gregkh-2.6.orig/drivers/ide/ide-disk.c -+++ gregkh-2.6/drivers/ide/ide-disk.c -@@ -1271,6 +1271,7 @@ static int __init idedisk_init(void) - return driver_register(&idedisk_driver.gen_driver); - } - -+MODULE_ALIAS("ide:*m-disk*"); - module_init(idedisk_init); - module_exit(idedisk_exit); - MODULE_LICENSE("GPL"); ---- gregkh-2.6.orig/drivers/ide/ide-floppy.c -+++ gregkh-2.6/drivers/ide/ide-floppy.c -@@ -2197,6 +2197,7 @@ static int __init idefloppy_init(void) - return driver_register(&idefloppy_driver.gen_driver); - } - -+MODULE_ALIAS("ide:*m-floppy*"); - module_init(idefloppy_init); - module_exit(idefloppy_exit); - MODULE_LICENSE("GPL"); ---- gregkh-2.6.orig/drivers/ide/ide-tape.c -+++ gregkh-2.6/drivers/ide/ide-tape.c -@@ -4947,6 +4947,7 @@ out: - return error; - } - -+MODULE_ALIAS("ide:*m-tape*"); - module_init(idetape_init); - module_exit(idetape_exit); - MODULE_ALIAS_CHARDEV_MAJOR(IDETAPE_MAJOR); |