On Fri, 2015-10-16 at 13:28 +0200, Arnd Bergmann wrote: > On Friday 16 October 2015 11:14:44 David Laight wrote: > > From: Arnd Bergmann > > > Sent: 16 October 2015 11:01 > > > BITS_RX_EN is an 'unsigned long' constant, so the ones complement of that > > > has bits set that do not fit into a 32-bit variable on 64-bit > > > architectures, > > > which causes a harmless gcc warning: > > ... > > > static void hix5hd2_port_disable(struct hix5hd2_priv *priv) > > > { > > > - writel_relaxed(~(BITS_RX_EN | BITS_TX_EN), priv->base + PORT_EN); > > > + writel_relaxed(~(u32)(BITS_RX_EN | BITS_TX_EN), priv->base + > > > PORT_EN); > > > writel_relaxed(0, priv->base + DESC_WR_RD_ENA); > > > > ISTM that just means that the constants shouldn't be 'long'. > > Right, but that would probably mean changing the BIT() macro or not using it > here. In the past I've argued against using that macro, but I've given > up that fight.
Fight on... (Somebody must have gone to USC here) There might be value in a BIT_U32 macro. Maybe BIT_U64 too. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html