All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oliver Hartkopp <socketcan@hartkopp.net>
To: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: "Max S." <max@schneidersoft.net>,
	"linux-can@vger.kernel.org" <linux-can@vger.kernel.org>
Subject: Re: usb-can device
Date: Tue, 28 Aug 2012 14:18:18 +0200	[thread overview]
Message-ID: <503CB70A.8040506@hartkopp.net> (raw)
In-Reply-To: <503CB5DF.4030707@pengutronix.de>

On 28.08.2012 14:13, Marc Kleine-Budde wrote:

> Max, please leave the mailinglist on Cc.


Acked-by me too. But i think it was an accident :-)

>>>> *2:
>>>> To provide a state-of-the-art echo functionality the sk pointer (skb->sk) is
>>>> sent along with the CAN frame. This allows to skb_free() the original tx skb
>>>> and create a new one at rx time with the correct sk pointer, when the frame is
>>>> echoed after successful transmission. As we are endian safe the sk pointer can
>>>> be taken from the USB URB as-is. (For security reasons we should probably not
>>>> take the pointer directly but double check with stored echo-skbs)
>>>
>>> hm. I also don't think it would be wise to accept a pointer from the
>>> outside in kernel space. maybe accept an index(that can be checked) into
>>> a pointer array?.. I don't know, I'm not at that point yet :P.
>>>
>>
>>
>> I found a very interesting implementation in the Bosch M_CAN specification:
>>
>> http://www.semiconductors.bosch.de/en/ipmodules/can/canipmodules/m_can/m_can.asp
>>
>> http://www.semiconductors.bosch.de/media/en/pdf/ipmodules_1/m_can/mcan_users_manual.pdf
>>
>> Section 2.4.3 Tx Buffer Element (page 45)
>>
>> ---8<---
>>
>> T1 Bits 31:24 MM[7:0]: Message Marker
>>
>> Written by CPU during Tx Buffer configuration. Copied into Tx Event FIFO
>> element for identification of Tx message status.
>>
>> ---8<---
>>
>> So you can see in the Tx event FIFO, which marked CAN frame has been sent.
>>
>> This is probably enough to provide just a byte and to create an array of
>> skb pointers which is referenced by this Message Marker. Maybe 256 markers
>> are too much ... we could only use 8 markers IMO.
> 
> Why not a full u32? Then you're free on the driver side to do what you
> want with it.


Yes. You're right. It's a marker - and if i personally only want to handle an
index into an array with 8 elements with my driver it's my choice.

Regards,
Oliver


  reply	other threads:[~2012-08-28 12:18 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-26 15:52 usb-can device Max S.
2012-08-26 16:28 ` Marc Kleine-Budde
2012-08-27  6:20   ` Oliver Hartkopp
     [not found]     ` <20120827081028.GA417@vandijck-laurijssen.be>
2012-08-27  9:05       ` Marc Kleine-Budde
     [not found]     ` <1346071259.3928.33.camel@slaptop>
2012-08-28 11:58       ` Oliver Hartkopp
2012-08-28 12:13         ` Marc Kleine-Budde
2012-08-28 12:18           ` Oliver Hartkopp [this message]
2012-08-28 12:20             ` Marc Kleine-Budde
2012-08-28 14:30     ` Max S.
2012-08-29 10:55       ` Oliver Hartkopp
2012-08-28 23:34     ` Fabio Baltieri
2012-08-29 11:02       ` Oliver Hartkopp
2012-09-09 13:41         ` Pavel Pisa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=503CB70A.8040506@hartkopp.net \
    --to=socketcan@hartkopp.net \
    --cc=linux-can@vger.kernel.org \
    --cc=max@schneidersoft.net \
    --cc=mkl@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.