From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752572AbcHIDYC (ORCPT ); Mon, 8 Aug 2016 23:24:02 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:36147 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752360AbcHIDX7 (ORCPT ); Mon, 8 Aug 2016 23:23:59 -0400 Date: Mon, 8 Aug 2016 20:23:55 -0700 From: Benjamin Poirier To: Andreas Werner Cc: wg@grandegger.com, mkl@pengutronix.de, linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, davem@davemloft.net, jthumshirn@suse.de, andy@wernerandy.de Subject: Re: [PATCH RESEND] net: can: Introduce MEN 16Z192-00 CAN controller driver Message-ID: <20160809032355.fzbdpudsqg2bdn27@f1.synalogic.ca> References: <20160726091555.GA26227@awelinux> <20160808035814.ulqx4hnbtkkd2iko@f1.synalogic.ca> <20160808072620.GA5749@awelinux> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160808072620.GA5749@awelinux> User-Agent: Mutt/1.6.2-neo (2016-06-11) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2016/08/08 09:26, Andreas Werner wrote: [...] > > > + > > > + if (cf->can_dlc > 0) > > > + data[0] = be32_to_cpup((__be32 *)(cf->data)); > > > + if (cf->can_dlc > 3) > > > + data[1] = be32_to_cpup((__be32 *)(cf->data + 4)); > > > + > > > + writel(id, &cf_buf->can_id); > > > + writel(cf->can_dlc, &cf_buf->length); > > > + > > > + if (!(cf->can_id & CAN_RTR_FLAG)) { > > > + writel(data[0], &cf_buf->data[0]); > > > + writel(data[1], &cf_buf->data[1]); > > > + > > > + stats->tx_bytes += cf->can_dlc; > > > + } > > > + > > > + /* be sure everything is written to the > > > + * device before acknowledge the data. > > > + */ > > > + mmiowb(); > > > + > > > + /* trigger the transmission */ > > > + men_z192_ack_tx_pkg(priv, 1); > > > + > > > + stats->tx_packets++; > > > + > > > + kfree_skb(skb); > > > > What prevents the skb data to be freed/reused before the device has > > accessed it? I'm sorry, I hadn't realized that all of the data (all 8 bytes of it!) is written directly to the device. I was thinking about ethernet devices that dma packet data.