forked from Minki/linux
db29e85a7e
Remove new configuration API from i2o_config The API-patch is still available from the I2O website (which is mentioned in the kernel config now). It is removed because it creates a new binary sysfs-attribute, which doesn't have the limitiation of 4k. Expect for the Adaptec controllers, which has a limitation in the hardware this attribute doesn't make sense anywhere else. Until the sysfs API provides an attribute which doesn't buffer (like firmware) and let access to at least 64k blocks i provide a separate patch... (akpm: basically, this API was introduced post-2.6.12 and Markus wants to pull it out before 2.6.13). Signed-off-by: Markus Lidel <Markus.Lidel@shadowconnect.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
88 lines
2.0 KiB
C
88 lines
2.0 KiB
C
/*
|
|
* Configuration OSM
|
|
*
|
|
* Copyright (C) 2005 Markus Lidel <Markus.Lidel@shadowconnect.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation; either version 2 of the License, or (at your
|
|
* option) any later version.
|
|
*
|
|
* Fixes/additions:
|
|
* Markus Lidel <Markus.Lidel@shadowconnect.com>
|
|
* initial version.
|
|
*/
|
|
|
|
#include <linux/module.h>
|
|
#include <linux/i2o.h>
|
|
#include <linux/dcache.h>
|
|
#include <linux/namei.h>
|
|
#include <linux/fs.h>
|
|
|
|
#include <asm/uaccess.h>
|
|
|
|
#define OSM_NAME "config-osm"
|
|
#define OSM_VERSION "1.248"
|
|
#define OSM_DESCRIPTION "I2O Configuration OSM"
|
|
|
|
/* access mode user rw */
|
|
#define S_IWRSR (S_IRUSR | S_IWUSR)
|
|
|
|
static struct i2o_driver i2o_config_driver;
|
|
|
|
/* Config OSM driver struct */
|
|
static struct i2o_driver i2o_config_driver = {
|
|
.name = OSM_NAME,
|
|
};
|
|
|
|
#ifdef CONFIG_I2O_CONFIG_OLD_IOCTL
|
|
#include "i2o_config.c"
|
|
#endif
|
|
|
|
/**
|
|
* i2o_config_init - Configuration OSM initialization function
|
|
*
|
|
* Registers Configuration OSM in the I2O core and if old ioctl's are
|
|
* compiled in initialize them.
|
|
*
|
|
* Returns 0 on success or negative error code on failure.
|
|
*/
|
|
static int __init i2o_config_init(void)
|
|
{
|
|
printk(KERN_INFO OSM_DESCRIPTION " v" OSM_VERSION "\n");
|
|
|
|
if (i2o_driver_register(&i2o_config_driver)) {
|
|
osm_err("handler register failed.\n");
|
|
return -EBUSY;
|
|
}
|
|
#ifdef CONFIG_I2O_CONFIG_OLD_IOCTL
|
|
if (i2o_config_old_init())
|
|
i2o_driver_unregister(&i2o_config_driver);
|
|
#endif
|
|
|
|
return 0;
|
|
}
|
|
|
|
/**
|
|
* i2o_config_exit - Configuration OSM exit function
|
|
*
|
|
* If old ioctl's are compiled in exit remove them and unregisters
|
|
* Configuration OSM from I2O core.
|
|
*/
|
|
static void i2o_config_exit(void)
|
|
{
|
|
#ifdef CONFIG_I2O_CONFIG_OLD_IOCTL
|
|
i2o_config_old_exit();
|
|
#endif
|
|
|
|
i2o_driver_unregister(&i2o_config_driver);
|
|
}
|
|
|
|
MODULE_AUTHOR("Markus Lidel <Markus.Lidel@shadowconnect.com>");
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION(OSM_DESCRIPTION);
|
|
MODULE_VERSION(OSM_VERSION);
|
|
|
|
module_init(i2o_config_init);
|
|
module_exit(i2o_config_exit);
|