From: Dong Hao <[email protected]>
The printk() function at the end of function kobject_init() already had '\n',
so remove the duplicated one.
Signed-off-by: Dong Hao <[email protected]>
---
lib/kobject.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/kobject.c b/lib/kobject.c
index e07ee1f..279a172 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -274,7 +274,7 @@ void kobject_init(struct kobject *kobj, struct kobj_type *ktype)
goto error;
}
if (!ktype) {
- err_str = "must have a ktype to be initialized properly!\n";
+ err_str = "must have a ktype to be initialized properly!";
goto error;
}
if (kobj->state_initialized) {
--
1.7.9.5
From: Dong Hao <[email protected]>
kobj and ktype are two important attributes which will be used after kobject_init(),
and (!kobj)|(!ktype) may cause FS corruption which could not be recovered.
Panic instead of dump_stack() when neither kobj nor ktype is properly assigned to
detect the bug early.
Signed-off-by: Dong Hao <[email protected]>
---
lib/kobject.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/kobject.c b/lib/kobject.c
index 279a172..ff9b3c3 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -290,7 +290,7 @@ void kobject_init(struct kobject *kobj, struct kobj_type *ktype)
error:
printk(KERN_ERR "kobject (%p): %s\n", kobj, err_str);
- dump_stack();
+ BUG_ON(1);
}
EXPORT_SYMBOL(kobject_init);
--
1.7.9.5
From: Dong Hao <[email protected]>
WARN_ON corresponds to BUG_ON and also gets more info.
Signed-off-by: Dong Hao <[email protected]>
---
lib/kobject.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/kobject.c b/lib/kobject.c
index ff9b3c3..f7d9f31 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -281,7 +281,7 @@ void kobject_init(struct kobject *kobj, struct kobj_type *ktype)
/* do not error out as sometimes we can recover */
printk(KERN_ERR "kobject (%p): tried to init an initialized "
"object, something is seriously wrong.\n", kobj);
- dump_stack();
+ WARN_ON(1);
}
kobject_init_internal(kobj);
--
1.7.9.5
On 03/19/2013 02:47 PM, Dong Hao wrote:
> From: Dong Hao <[email protected]>
>
> kobj and ktype are two important attributes which will be used after kobject_init(),
> and (!kobj)|(!ktype) may cause FS corruption which could not be recovered.
delete this line, i am not very convinced about corruption ...
> Panic instead of dump_stack() when neither kobj nor ktype is properly assigned to
> detect the bug early.
>
> Signed-off-by: Dong Hao <[email protected]>
> ---
> lib/kobject.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/kobject.c b/lib/kobject.c
> index 279a172..ff9b3c3 100644
> --- a/lib/kobject.c
> +++ b/lib/kobject.c
> @@ -290,7 +290,7 @@ void kobject_init(struct kobject *kobj, struct kobj_type *ktype)
>
> error:
> printk(KERN_ERR "kobject (%p): %s\n", kobj, err_str);
> - dump_stack();
> + BUG_ON(1);
> }
> EXPORT_SYMBOL(kobject_init);
>
On 03/19/2013 02:47 PM, Dong Hao wrote:
> From: Dong Hao <[email protected]>
>
> WARN_ON corresponds to BUG_ON and also gets more info.
Change the log like this:
like the comments said, double initialize a kobj is wrong
but can be recoverd, using WARN_ON to warn the developer also
it can get more info.
(Or you refine the code by yourself.)
>
> Signed-off-by: Dong Hao <[email protected]>
> ---
> lib/kobject.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/kobject.c b/lib/kobject.c
> index ff9b3c3..f7d9f31 100644
> --- a/lib/kobject.c
> +++ b/lib/kobject.c
> @@ -281,7 +281,7 @@ void kobject_init(struct kobject *kobj, struct kobj_type *ktype)
> /* do not error out as sometimes we can recover */
> printk(KERN_ERR "kobject (%p): tried to init an initialized "
> "object, something is seriously wrong.\n", kobj);
> - dump_stack();
> + WARN_ON(1);
> }
>
> kobject_init_internal(kobj);
>
On 03/19/2013 03:03 PM, Xiao Guangrong wrote:
> On 03/19/2013 02:47 PM, Dong Hao wrote:
>> From: Dong Hao <[email protected]>
>>
>> WARN_ON corresponds to BUG_ON and also gets more info.
>
> Change the log like this:
> like the comments said, double initialize a kobj is wrong
> but can be recoverd, using WARN_ON to warn the developer also
> it can get more info.
>
> (Or you refine the code by yourself.)
s/code/comment
>
>>
>> Signed-off-by: Dong Hao <[email protected]>
>> ---
>> lib/kobject.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/lib/kobject.c b/lib/kobject.c
>> index ff9b3c3..f7d9f31 100644
>> --- a/lib/kobject.c
>> +++ b/lib/kobject.c
>> @@ -281,7 +281,7 @@ void kobject_init(struct kobject *kobj, struct kobj_type *ktype)
>> /* do not error out as sometimes we can recover */
>> printk(KERN_ERR "kobject (%p): tried to init an initialized "
>> "object, something is seriously wrong.\n", kobj);
>> - dump_stack();
>> + WARN_ON(1);
>> }
>>
>> kobject_init_internal(kobj);
>>
>
On Tue, Mar 19, 2013 at 02:47:00PM +0800, Dong Hao wrote:
> From: Dong Hao <[email protected]>
>
> kobj and ktype are two important attributes which will be used after kobject_init(),
> and (!kobj)|(!ktype) may cause FS corruption which could not be recovered.
> Panic instead of dump_stack() when neither kobj nor ktype is properly assigned to
> detect the bug early.
>
> Signed-off-by: Dong Hao <[email protected]>
> ---
> lib/kobject.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/kobject.c b/lib/kobject.c
> index 279a172..ff9b3c3 100644
> --- a/lib/kobject.c
> +++ b/lib/kobject.c
> @@ -290,7 +290,7 @@ void kobject_init(struct kobject *kobj, struct kobj_type *ktype)
>
> error:
> printk(KERN_ERR "kobject (%p): %s\n", kobj, err_str);
> - dump_stack();
> + BUG_ON(1);
You just crashed the machine. That's horrible, and unacceptable.
*plonk*
On Tue, Mar 19, 2013 at 02:46:59PM +0800, Dong Hao wrote:
> From: Dong Hao <[email protected]>
>
> The printk() function at the end of function kobject_init() already had '\n',
> so remove the duplicated one.
Your subject doesn't match this description.
On Tue, Mar 19, 2013 at 02:47:01PM +0800, Dong Hao wrote:
> From: Dong Hao <[email protected]>
>
> WARN_ON corresponds to BUG_ON and also gets more info.
Huh? No.
Please stop, don't resend these.
greg k-h