Patchwork ->[PATCH v2] kgdb: Removed kmalloc returned value cast

login
register
mail settings
Submitter Alex Grad
Date March 10, 2013, 10:39 p.m.
Message ID <1362955188-3023-1-git-send-email-alex.grad@gmail.com>
Download mbox | patch
Permalink /patch/226472/
State Superseded
Headers show

Comments

Alex Grad - March 10, 2013, 10:39 p.m.
While at it, check kmalloc return value.

Signed-off-by: Alex Grad <alex.grad@gmail.com>
---
 arch/powerpc/kernel/kgdb.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Tiejun Chen - March 11, 2013, 1:33 a.m.
On 03/11/2013 06:39 AM, Alex Grad wrote:
> While at it, check kmalloc return value.
>
> Signed-off-by: Alex Grad <alex.grad@gmail.com>
> ---
>   arch/powerpc/kernel/kgdb.c |    5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c
> index 5ca82cd..9e81dd8 100644
> --- a/arch/powerpc/kernel/kgdb.c
> +++ b/arch/powerpc/kernel/kgdb.c
> @@ -159,7 +159,10 @@ static int kgdb_singlestep(struct pt_regs *regs)
>   	if (user_mode(regs))
>   		return 0;
>
> -	backup_current_thread_info = (struct thread_info *)kmalloc(sizeof(struct thread_info), GFP_KERNEL);
> +	backup_current_thread_info = kmalloc(sizeof(struct thread_info), GFP_KERNEL);
> +	if (!backup_current_thread_info)
> +		return -ENOMEM;

I already send a kgdb patchset in "[v3][PATCH 6/6] powerpc/kgdb: remove copying 
the thread_info" to remove these stuff since its unnecessary to copy current 
thread_info now.

Tiejun
Tiejun Chen - March 11, 2013, 10:14 a.m.
On 03/11/2013 09:33 AM, tiejun.chen wrote:
> On 03/11/2013 06:39 AM, Alex Grad wrote:
>> While at it, check kmalloc return value.
>>
>> Signed-off-by: Alex Grad <alex.grad@gmail.com>
>> ---
>>   arch/powerpc/kernel/kgdb.c |    5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c
>> index 5ca82cd..9e81dd8 100644
>> --- a/arch/powerpc/kernel/kgdb.c
>> +++ b/arch/powerpc/kernel/kgdb.c
>> @@ -159,7 +159,10 @@ static int kgdb_singlestep(struct pt_regs *regs)
>>       if (user_mode(regs))
>>           return 0;
>>
>> -    backup_current_thread_info = (struct thread_info *)kmalloc(sizeof(struct
>> thread_info), GFP_KERNEL);
>> +    backup_current_thread_info = kmalloc(sizeof(struct thread_info),
>> GFP_KERNEL);
>> +    if (!backup_current_thread_info)
>> +        return -ENOMEM;
>
> I already send a kgdb patchset in "[v3][PATCH 6/6] powerpc/kgdb: remove copying
> the thread_info" to remove these stuff since its unnecessary to copy current
> thread_info now.

I guess that patchset needs to be reviewed with more time and I also think I can 
leave this copying to be compatible for other platforms in the future, but we 
really should fix this problem I introduced right now. So I'd like to fix this 
with DEFINE_PER_CPU.

I send a patch, "powerpc/kgdb: use DEFINE_PER_CPU to allocate kgdb's 
thread_info", so please take a look at if that version is fine to every one.

Any comments are appreciated.

BTW, I will update that kgdb patchset with this change to resend.

Tiejun

Patch

diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c
index 5ca82cd..9e81dd8 100644
--- a/arch/powerpc/kernel/kgdb.c
+++ b/arch/powerpc/kernel/kgdb.c
@@ -159,7 +159,10 @@  static int kgdb_singlestep(struct pt_regs *regs)
 	if (user_mode(regs))
 		return 0;
 
-	backup_current_thread_info = (struct thread_info *)kmalloc(sizeof(struct thread_info), GFP_KERNEL);
+	backup_current_thread_info = kmalloc(sizeof(struct thread_info), GFP_KERNEL);
+	if (!backup_current_thread_info)
+		return -ENOMEM;
+
 	/*
 	 * On Book E and perhaps other processors, singlestep is handled on
 	 * the critical exception stack.  This causes current_thread_info()