Add class / device portability code. Two autoconf tests

were added to cover the 3 possible APIs from 2.6.9 to
2.6.26.  We attempt to use the newest interfaces and if
not available fallback to the oldest.  This a rework of
some changes proposed by Ricardo for RHEL4.



git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@150 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
This commit is contained in:
behlendo
2008-08-10 03:50:36 +00:00
parent 877a32e91e
commit 46c685d0c4
8 changed files with 103 additions and 44 deletions
+7 -7
View File
@@ -153,7 +153,7 @@ __ddi_create_minor_node(dev_info_t *di, char *name, int spec_type,
RETURN(DDI_FAILURE);
}
di->di_class = class_create(THIS_MODULE, name);
di->di_class = spl_class_create(THIS_MODULE, name);
if (IS_ERR(di->di_class)) {
rc = PTR_ERR(di->di_class);
CERROR("Error creating %s class, %d\n", name, rc);
@@ -165,11 +165,11 @@ __ddi_create_minor_node(dev_info_t *di, char *name, int spec_type,
/* Do not append a 0 to devices with minor nums of 0 */
if (di->di_minor == 0) {
class_device_create(di->di_class, NULL, di->di_dev,
NULL, "%s", name);
spl_device_create(di->di_class, NULL, di->di_dev,
NULL, "%s", name);
} else {
class_device_create(di->di_class, NULL, di->di_dev,
NULL, "%s%d", name, di->di_minor);
spl_device_create(di->di_class, NULL, di->di_dev,
NULL, "%s%d", name, di->di_minor);
}
di->di_cdev = cdev;
@@ -188,8 +188,8 @@ static void
__ddi_remove_minor_node_locked(dev_info_t *di, char *name)
{
if (di->di_class) {
class_device_destroy(di->di_class, di->di_dev);
class_destroy(di->di_class);
spl_device_destroy(di->di_class, di->di_dev);
spl_class_destroy(di->di_class);
di->di_class = NULL;
di->di_dev = 0;