Corrected data type mismatch

bhs haishan.bai at gmail.com
Wed Nov 17 00:16:36 EST 2010


On Nov 16, 2010, at 8:07 PM, DDD wrote:

> Milton Miller wrote:
>> [added cc's based on from ff10b88b5a05c8f1646dd15fb9f6093c1384ff6d,
>> which added the patched line ]
>> https://patchwork.kernel.org/patch/323022/
>> On Sun, 14 Nov 2010 around 02:06:59 -0000, Hai Shan wrote:
>>> Corrected data type mismatch
>>> 
>> This merely hides the type mismatch by force casting it.
>> Looking at the context I believe the intent is to copy the the value to
>> or from the register content slot, not take the previous value of the
>> register and use that as an address to copy to or from.
> 
> 
> OOPS! It is wrong here, The right one should be as following:
> 
> -   memcpy(mem, current->thread.evr[regno-32],
> +   memcpy(mem, (void*)&current->thread.evr[regno-32], dbg_reg_def[regno].size);
> 
> Thanks milton & Shan.Hai, I will send out the fix to Jason ASAP.
> 


Sorry for my crude fix :)


> Dongdong
> 
> 
>> milton
>>> Signed-off-by: Hai Shan <shan.hai at windriver.com>
>>> 
>>> ---
>>> arch/powerpc/kernel/kgdb.c |    4 ++--
>>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>> 
>>> diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c
>>> index 7a9db64..c5ce65f 100644
>>> --- a/arch/powerpc/kernel/kgdb.c
>>> +++ b/arch/powerpc/kernel/kgdb.c
>>> @@ -337,7 +337,7 @@ char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs)
>>> 		/* FP registers 32 -> 63 */
>>> #if defined(CONFIG_FSL_BOOKE) && defined(CONFIG_SPE)
>>> 		if (current)
>>> -			memcpy(mem, current->thread.evr[regno-32],
>>> +			memcpy(mem, (void *)current->thread.evr[regno-32],
>>> 					dbg_reg_def[regno].size);
>>> #else
>>> 		/* fp registers not used by kernel, leave zero */
>>> @@ -362,7 +362,7 @@ int dbg_set_reg(int regno, void *mem, struct pt_regs *regs)
>>> 	if (regno >= 32 && regno < 64) {
>>> 		/* FP registers 32 -> 63 */
>>> #if defined(CONFIG_FSL_BOOKE) && defined(CONFIG_SPE)
>>> -		memcpy(current->thread.evr[regno-32], mem,
>>> +		memcpy((void *)current->thread.evr[regno-32], mem,
>>> 				dbg_reg_def[regno].size);
>>> #else
>>> 		/* fp registers not used by kernel, leave zero */
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/



More information about the Linuxppc-dev mailing list