mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
Avoid to create duplicate filename for misc devices.
There has two bugs.
1. For example, the 'psaux' device will use '1' as minor number to
register misc device, but misc deriver doesn't set the '1' as used.
It's the root casue for duplicate filename.
2. From warning message, minor number '1' is the one of duplicate
fileanme, it meanes the number of dynamic minor is not enough.
The symptom of creating duplicate filename:
------------[ cut here ]------------
WARNING: at fs/sysfs/dir.c:508 sysfs_add_one+0x7c/0x9c()
sysfs: cannot create duplicate filename '/dev/char/10:1'
[<c00148b8>] (unwind_backtrace+0x0/0x11c) from
[<c007f828>] (warn_slowpath_common+0x48/0x60)
[<c007f898>] (warn_slowpath_fmt+0x2c/0x3c)
[<c018696c>] (sysfs_add_one+0x7c/0x9c)
[<c01874b4>] (sysfs_do_create_link+0x10c/0x1f8)
[<c03bd6c0>] (device_add+0x1ac/0x5e4)
[<c03be24c>] (device_create_vargs+0x8c/0xd0)
[<c03be2ac>] (device_create+0x1c/0x24)
[<c037c7a4>] (misc_register+0xb4/0x118)
[<c0e30c1c>] (init_log+0x10/0x4c)
[<c0e009d8>] (do_one_initcall+0x90/0x160)
[<c0e00b94>] (kernel_init+0xec/0x1a8)
[<c000f468>] (kernel_thread_exit+0x0/0x8)
---[ end trace da227214a82491b9 ]---
BUG 8889112
Change-Id: I186a945a56fc831f59e19509365a0ae8a481bb2d
Signed-off-by: singhome_lee <singhome_lee@asus.com>
This commit is contained in:
parent
b7303afcd7
commit
a7e522b11a
1 changed files with 3 additions and 1 deletions
|
@ -59,7 +59,7 @@ static DEFINE_MUTEX(misc_mtx);
|
|||
/*
|
||||
* Assigned numbers, used for dynamic minors
|
||||
*/
|
||||
#define DYNAMIC_MINORS 64 /* like dynamic majors */
|
||||
#define DYNAMIC_MINORS 128
|
||||
static DECLARE_BITMAP(misc_minors, DYNAMIC_MINORS);
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
|
@ -205,6 +205,8 @@ int misc_register(struct miscdevice * misc)
|
|||
}
|
||||
misc->minor = DYNAMIC_MINORS - i - 1;
|
||||
set_bit(i, misc_minors);
|
||||
} else if (misc->minor < DYNAMIC_MINORS) {
|
||||
set_bit(misc->minor, misc_minors);
|
||||
}
|
||||
|
||||
dev = MKDEV(MISC_MAJOR, misc->minor);
|
||||
|
|
Loading…
Reference in a new issue