Re: [PATCH v3 5/6] can: c_can: prepare to up the message objects number

From: Dario Binacchi
Date: Tue Mar 02 2021 - 06:32:01 EST


Hi Marc,

> Il 01/03/2021 20:45 Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> ha scritto:
>
>
> On 01.03.2021 18:21:42, Dario Binacchi wrote:
> > > > @@ -730,7 +728,7 @@ static void c_can_do_tx(struct net_device *dev)
> > > > while ((idx = ffs(pend))) {
> > > > idx--;
> > > > pend &= ~(1 << idx);
> > > > - obj = idx + C_CAN_MSG_OBJ_TX_FIRST;
> > > > + obj = idx + priv->msg_obj_tx_first;
> > > > c_can_inval_tx_object(dev, IF_TX, obj);
> > > > can_get_echo_skb(dev, idx, NULL);
> > > > bytes += priv->dlc[idx];
> > > > @@ -740,7 +738,7 @@ static void c_can_do_tx(struct net_device *dev)
> > > > /* Clear the bits in the tx_active mask */
> > > > atomic_sub(clr, &priv->tx_active);
> > > >
> > > > - if (clr & (1 << (C_CAN_MSG_OBJ_TX_NUM - 1)))
> > > > + if (clr & (1 << (priv->msg_obj_tx_num - 1)))
> > >
> > > Do we need 1UL here, too?
> >
> > Do you agree if I use the BIT macro ?
>
> No, please use GENMASK(priv->msg_obj_tx_num, 0) here.
>

In case of 64 message objects, msg_obj_tx_num = 32, and 1 << (priv->msg_obj_tx_num - 1) = 0x80000000.
GENMASK(priv->msg_obj_tx_num, 0) = 0.
BIT(priv->msg_obj_tx_num - 1) = 0x80000000.

Thanks and regards,
Dario

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