[PATCH] capi: register_chrdev() fix
If the user specified `major=0' (odd thing to do), capi.c will use dynamic allocation. We need to pick up that major for subsequent unregister_chrdev(). Acked-by: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
829d5f68ec
commit
6d9eac3410
1 changed files with 5 additions and 3 deletions
|
@ -1485,6 +1485,7 @@ static int __init capi_init(void)
|
|||
{
|
||||
char *p;
|
||||
char *compileinfo;
|
||||
int major_ret;
|
||||
|
||||
if ((p = strchr(revision, ':')) != 0 && p[1]) {
|
||||
strlcpy(rev, p + 2, sizeof(rev));
|
||||
|
@ -1493,11 +1494,12 @@ static int __init capi_init(void)
|
|||
} else
|
||||
strcpy(rev, "1.0");
|
||||
|
||||
if (register_chrdev(capi_major, "capi20", &capi_fops)) {
|
||||
major_ret = register_chrdev(capi_major, "capi20", &capi_fops);
|
||||
if (major_ret < 0) {
|
||||
printk(KERN_ERR "capi20: unable to get major %d\n", capi_major);
|
||||
return -EIO;
|
||||
return major_ret;
|
||||
}
|
||||
|
||||
capi_major = major_ret;
|
||||
capi_class = class_create(THIS_MODULE, "capi");
|
||||
if (IS_ERR(capi_class)) {
|
||||
unregister_chrdev(capi_major, "capi20");
|
||||
|
|
Loading…
Reference in a new issue