[PATCH 1/1] usb: xhci: avoid type conversion of void *

Heinrich Schuchardt xypron.glpk at gmx.de
Thu Oct 1 01:43:43 CEST 2020


On 9/29/20 10:20 PM, Marek Vasut wrote:
> On 9/29/20 10:03 PM, Heinrich Schuchardt wrote:
>> void * can be assigned to any pointer variable. Avoid unnecessary
>> conversions.
>>
>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>> ---
>>  drivers/usb/host/xhci-mem.c | 21 +++++++++------------
>>  1 file changed, 9 insertions(+), 12 deletions(-)
>>
>> diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
>> index 1da0524aa0..4c303ae705 100644
>> --- a/drivers/usb/host/xhci-mem.c
>> +++ b/drivers/usb/host/xhci-mem.c
>> @@ -280,10 +280,10 @@ static struct xhci_segment *xhci_segment_alloc(void)
>>  {
>>  	struct xhci_segment *seg;
>>
>> -	seg = (struct xhci_segment *)malloc(sizeof(struct xhci_segment));
>> +	seg = malloc(sizeof(struct xhci_segment));
>
> As far as I remember, the compiler used to complain about assignment
> from a different type without a cast ?

Under the ANSI C standard, the cast is redundant.

void * is an incomplete type. You can assign it to any pointer and any
pointer can be assigned to it, both without casting.

For other data types you are right. GCC will not accept an assignment
without conversion.

In C++ you need to cast to assign void * to other types.

> btw. you might also do a patch which does malloc(sizeof(*seg)); while at it.

Sure if you prefer that I will respin the patch.

Best regards

Heinrich


More information about the U-Boot mailing list