From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wolfgang Grandegger Subject: Re: pch_can: Data transmission stops after dropped packet Date: Sun, 25 Nov 2012 17:17:31 +0100 Message-ID: <50B2449B.8060708@grandegger.com> References: <50AA5EE6.6060105@grandegger.com> <50AA86DB.7000506@grandegger.com> <50AAA8C8.2080504@grandegger.com> <50ABABDE.8060503@grandegger.com> <50ABF09C.8040303@grandegger.com> <50ACABE2.2020306@grandegger.com> <50ACF9C0.8050206@grandegger.com> <50AD042B.3020305 @grandegger.com> <50AD319E.2000209@grandegger.com> <50AF8C01.6060 809@grandegger.com> <50AFABB1.7080507@grandegger.com> <50AFAFF0.9030706@grandegger.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------000001000401090307020800" Return-path: Received: from ngcobalt02.manitu.net ([217.11.48.102]:43511 "EHLO ngcobalt02.manitu.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752964Ab2KYQRf (ORCPT ); Sun, 25 Nov 2012 11:17:35 -0500 In-Reply-To: Sender: linux-can-owner@vger.kernel.org List-ID: To: Michael Pellegrini Cc: linux-can@vger.kernel.org This is a multi-part message in MIME format. --------------000001000401090307020800 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi Michael, On 11/23/2012 06:52 PM, Michael Pellegrini wrote: > Wolfgang Grandegger grandegger.com> writes: > >>> That's clear. Therefore please remove that printk for testing. For a >>> quick test could you please add spin_locks to c_can_do_rx_poll() similar >>> to c_can_do_tx(). My suspicion is that there is a race in accessing the >>> message ram. There is this infamous c_can_msg_obj_is_busy() in >>> c_can_object_get() and c_can_object_put(). >> >> And please use: >> >> CONFIG_CAN_DEBUG_DEVICES=y CONFIG_CAN_C_CAN_PCI=m make -C >> /usr/src/linux-headers-`uname -r` SUBDIRS=`pwd` modules >> >> otherwise we will not have debug messages. > > Ok, I've applied the following patch: > > *** ../c-can-pci-v5/c_can.c 2012-11-21 14:47:03.000000000 -0500 > --- ./c_can.c 2012-11-23 12:27:05.946016919 -0500 > *************** static int c_can_do_rx_poll(struct net_d > *** 795,800 **** > --- 795,803 ---- > unsigned int msg_obj, msg_ctrl_save; > struct c_can_priv *priv = netdev_priv(dev); > u32 val = c_can_read_reg32(priv, C_CAN_INTPND1_REG); > + unsigned long flags; > + > + spin_lock_irqsave(&priv->lock, flags); > > for (msg_obj = C_CAN_MSG_OBJ_RX_FIRST; > msg_obj <= C_CAN_MSG_OBJ_RX_LAST && quota > 0; > *************** static int c_can_do_rx_poll(struct net_d > *** 843,848 **** > --- 846,853 ---- > } > } > > + spin_unlock_irqrestore(&priv->lock, flags); > + > return num_rx_pkts; > } There is a return in the critical section which must also be handled. Hope you didn't hit it... I have attached v7 fixing this issue. Furthermore I have added spinlock protection to the PCH driver. It needs fixing, even if I want to get ride of it as soon as possible. Could you please give this driver a try as well? The README tells how to build the modules. I will also send my current patch stack for the record (and feedback). Wolfgang. --------------000001000401090307020800 Content-Type: application/x-bzip; name="c-can-pci-v7.tar.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="c-can-pci-v7.tar.bz2" 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 --------------000001000401090307020800--