[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <5205EDEB.3010707@iki.fi>
Date: Sat, 10 Aug 2013 10:38:19 +0300
From: Jussi Kivilinna <jussi.kivilinna@....fi>
To: Petko Manolov <petkan@...leusys.com>
CC: netdev@...r.kernel.org,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-usb@...r.kernel.org, "David S. Miller" <davem@...emloft.net>
Subject: Re: [PATCH] net/usb: rtl8150: allocate URB transfer_buffer and setup_packet
separately
On 09.08.2013 21:50, Petko Manolov wrote:
> On Thu, 8 Aug 2013, Jussi Kivilinna wrote:
>
>> On 08.08.2013 18:14, Petko Manolov wrote:
>>> On Wed, 7 Aug 2013, Jussi Kivilinna wrote:
>>>
>>>> rtl8150 allocates URB transfer_buffer and setup_packet as part of same
>>>> structure 'struct async_req'. This can cause same cacheline to be
>>>> DMA-mapped twice with same URB. This can lead to memory corruption on
>>>> some systems.
>>>
>>> I can see performance impact due to the double mapping. However, memory
>>> corruption seems a bit too much for sane cache and DMA controllers. Out
>>> of interest - which is the architecture that will potentially corrupt the
>>> memory.
>>
>> rtlwifi driver had similar structure to allocate both setup_packet and
>> transfer_buffer in single go (overlapping dma-mapping cachelines) and
>> this caused problems on ARM/sunxi. Problems means: memory corruptions at
>> random locations, device freezes and lock-ups.
>
> Broken controllers?..
>
At first I thought so too, but I discussed about this at linux-usb, and answer
was that driver which uses same (dma/-)cacheline for multiple buffers is buggy..
http://marc.info/?l=linux-usb&m=137130407121137&w=2 (at end)
http://marc.info/?l=linux-usb&m=137137080902265&w=2
http://marc.info/?l=linux-usb&m=137242422120782&w=2
-Jussi
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists