Re: m_can: a lot of 'Rx FIFO 0 Message Lost' in dmesg

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thank you Mariusz, you've helped me understand this driver better - I
had missed some of the logic. I agree that this is a bug.

On Sat, Feb 27, 2021 at 05:03:14AM +0100, Mariusz Madej wrote:
> I changed m_can_do_rx_poll:
> 
> static int m_can_do_rx_poll(struct net_device *dev, int quota)
> {
>         struct m_can_classdev *cdev = netdev_priv(dev);
>         u32 pkts = 0;
>         u32 rxfs;
> 
>         rxfs = m_can_read(cdev, M_CAN_RXF0S);
>         if (!(rxfs & RXFS_FFL_MASK)) {
>                 netdev_dbg(dev, "no messages in fifo0\n");
>                 return 0;
>         }
> 
>         while ((rxfs & RXFS_FFL_MASK) && (quota > 0)) {
>                 if (rxfs & RXFS_RFL) {
>                         netdev_warn(dev, "Rx FIFO 0 Message Lost\n");
>                         m_can_write(cdev, M_CAN_IR, IR_RF0L);
>                 }
> 
>                 m_can_read_fifo(dev, rxfs);
> 
>                 quota--;
>                 pkts++;
>                 rxfs = m_can_read(cdev, M_CAN_RXF0S);
>         }
> 
>         if (pkts)
>                 can_led_event(dev, CAN_LED_EVENT_RX);
> 
>         return pkts;
> }

Your fix makes sense to me. If you submit a patch to the linux-can list,
it will probably be reviewed quickly. (Don't bother to CC Dan Murphy
though, as his address listed in MAINTAINERS bounces mail.)

--
Regards,

Torin Cooper-Bennun
Software Engineer | maxiluxsystems.com




[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux