Subject: Re: [PATCH 1/3] POWERPC: don't cast a pointer to pointer of list_head

From: Li Zefan <[email-masked]>
Date: Fri, 07 Dec 2007 13:05:30 +0800

Nick Piggin 写道:
> On Thursday 06 December 2007 20:33, Li Zefan wrote:
>> The casting is safe only when the list_head member is the
>> first member of the structure.
> 
> Even so, I don't think too safe :) It might technically work,
> but it could break more easily.
> 
> So even if you find places where list_head is the first member of
> a structure, it would be nice to explicitly use the list_head member
> and avoid casts IMO.
> 

This is exactly what I think. Those patches actually fix no bugs, but
avoid this kind of technically and currently correct casting.

> 
>> Signed-off-by: Li Zefan <[email-masked]>
>>
>> ---
>>  arch/ppc/syslib/ocp.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/arch/ppc/syslib/ocp.c b/arch/ppc/syslib/ocp.c
>> index 3f5be2c..d42d408 100644
>> --- a/arch/ppc/syslib/ocp.c
>> +++ b/arch/ppc/syslib/ocp.c
>> @@ -376,7 +376,7 @@ ocp_remove_one_device(unsigned int vendor, unsigned int
>> function, int index)
>>
>>  	down_write(&ocp_devices_sem);
>>  	dev = __ocp_find_device(vendor, function, index);
>> -	list_del((struct list_head *)dev);
>> +	list_del(&dev->link);
>>  	up_write(&ocp_devices_sem);
>>
>>  	DBG(("ocp: ocp_remove_one_device(vendor: %x, function: %x, index: %d)...
>> done.\n", vendor, function, index));
> 
>