Subject: Re: [PATCH V2 5/5] net: can: ifi: Add IFI CANFD IP support

From: Marc Kleine-Budde <[email-masked]>
Date: Wed, 20 Jan 2016 15:06:02 +0100

On 01/20/2016 01:58 PM, Marek Vasut wrote:
> On Wednesday, January 20, 2016 at 11:54:21 AM, Marc Kleine-Budde wrote:
>> On 01/20/2016 11:39 AM, Marc Kleine-Budde wrote:
>>>> +/* IFI CANFD private data structure */
>>>> +struct ifi_canfd_priv {
>>>> +	struct can_priv		can;	/* must be the first member */
>>>> +	struct napi_struct	napi;
>>>> +	struct net_device	*ndev;
>>>> +	struct device		*device;
>>>
>>> Nitpick: This variable is write only, correct? I can fix this while
>>> applying the patch.
>>>
>>>> +	void __iomem		*base;
>>>> +};
>>>
>>> Otherweise looks good.
> 
> It's write-only, yeah. What would you propose to change here ?

Remove it completely. :D

>> Until compiling:
>>> drivers/net/can/ifi_canfd/ifi_canfd.c:486:40: warning: cast truncates
>>> bits from constant value (ffffffff7ffffffd becomes 7ffffffd)
>>> drivers/net/can/ifi_canfd/ifi_canfd.c:640:9: warning: cast truncates
>>> bits from constant value (ffffffff7fffffff becomes 7fffffff)
>>> drivers/net/can/ifi_canfd/ifi_canfd.c:676:9: warning: cast truncates
>>> bits from constant value (ffffffff7fffffff becomes 7fffffff)
>>
>> target is ARMv5 with gcc version 4.9.2, compiled with C=2 using sparse
>> v0.5.0.
> 
> It's again the BIT() macro :-/ Do you have any idea how to fix this please ?
> Doing something like u32 foo = ~BIT(31); triggers this splat and I am running
> out of ideas how to fix that.

-#define IFI_CANFD_INTERRUPT_SET_IRQ            BIT(31)
+#define IFI_CANFD_INTERRUPT_SET_IRQ            ((u32)BIT(31))

...or change the bit to "30" :D

Marc

-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |