lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 16 Nov 2010 11:16:27 +0100
From:	Wolfgang Grandegger <wg@...ndegger.com>
To:	Tomoya MORINAGA <tomoya-linux@....okisemi.com>
CC:	"David S. Miller" <davem@...emloft.net>,
	Wolfram Sang <w.sang@...gutronix.de>,
	Christian Pellegrin <chripell@...e.org>,
	Barry Song <21cnbao@...il.com>,
	Samuel Ortiz <sameo@...ux.intel.com>,
	socketcan-core@...ts.berlios.de, netdev@...r.kernel.org,
	linux-kernel@...r.kernel.org, andrew.chih.howe.khor@...el.com,
	qi.wang@...el.com, margie.foster@...el.com, yong.y.wang@...el.com,
	Masayuki Ohtake <masa-korg@....okisemi.com>,
	kok.howg.ewe@...el.com, joel.clark@...el.com
Subject: Re: [PATCH net-next-2.6 v2] can: Topcliff: PCH_CAN driver: Add Flow
 control,

Hi Tomoya,

On 11/16/2010 09:25 AM, Tomoya MORINAGA wrote:
> On Monday, November 15, 2010 11:21 PM, Wolfgang Grandegger wrote:
> 
>>
>> More comments to the lec handling below.
>>
>>> + cf->data[6] = ioread32(&priv->regs->errc) & PCH_TEC;
>>> + cf->data[7] = (ioread32(&priv->regs->errc) & PCH_REC) >> 8;
>>
>> Could be handle with just *one* register access.
> 
> I will modify.
> 
>>   if (reg_stat & PCH_BUS_OFF ||
>>     (reg_stat & PCH_LEC_ALL) != PCH_LEC_ALL) {
>>
>> Your lec handling is still not correc, 
> 
> I will modify like above.
> 
>> I believe. The driver needs to
>> write PCH_LEC_ALL to the "stat" register once in the initialization code
> This is NOT true.
> I heard even if CAN driver detects PCH_LEC_ALL, the driver doesn't have to
> write PCH_LEC_ALL to LEC.
> "PCH_LEC_ALL" means there is no error event.

OK, but...

> In case error is occurred, lec value is updated automatically.

... I doubt that it's updated automatically. At least I understand
chapter "13.4.2.2 CAN Status Register (CANSTAT)" and "Table 507. Last
Error Code (LEC) Details of Operation" differently. Please *check* the
real behavior by adding debugging code.

>> and then after each error observed (lec != PCH_LEC_ALL). I still do not
>> find such code. Could you show us the output of
>>
>>   "# candump any,0:0,#FFFFFFFF"
>>
>> when yo send CAN messages *without* a cable connected?.
> 
> 
> [root@...alhost can-utils]# ./candump any,0:0,#FFFFFFFF
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 88 00   ERRORFRAME

To inteprete the error messages, please have a look to
http://lxr.linux.no/#linux/include/linux/can/error.h

The id is "CAN_EFF_FLAG | CAN_ERR_ACK | CAN_ERR_CRTL" and data[1] is
"CAN_ERR_CRTL_TX_PASSIVE | CAN_ERR_CRTL_TX_WARNING".

Which is *not* 100% OK.

> ......It seems the same line continues forever.

Yes, it will continue until you connect the cable, that's normal
behavior. But that's not the full sequence. Could you please repeat the
test as shown below:

  First start the following command in a *separate* session.
  # candump any,0:0,#FFFFFFFF"

  Then setup and start the CAN controller:
  # ip link set can0 up type can bitrate 125000
  # cansend can0 123#deadbeef

Wolfgang.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ