All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
To: kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
	Andrea Paterniani@pogo,
	a.paterniani-03BXCEkGbFHYGGNLXY5/rw@public.gmane.org,
	Jan Nikitenko
	<jan.nikitenko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: SPI controller bugfixes needed (full duplex + DMA, data corruption)
Date: Sat, 15 Nov 2008 14:22:32 -0800	[thread overview]
Message-ID: <200811151422.32748.david-b@pacbell.net> (raw)

Hi,

We recently turned up a bug in the pxa2xx SPI driver, which
turns out to also be present in the spi_imx.c and au1550_spi.c
drivers too.

Briefly, full duplex transfers are allowed to share the
same buffer (or partially overlap it), which means that
the dma mapping operations must be done in a safe order:

 - first map the TX buffer, so cache data gets written
   to memory where the DMA will pick it up;

 - then map the RX buffer, so that cache entries (with
   soon-to-be-stale data) get removed.

Doing it the other order, as is done with spi_imx and
with au1550_spi, causes data corruption by discarding
data from the cache *before* writing it to memory.

If you can do it, it'd be good to see this fixed before
the 2.6.28 kernel ships.

- Dave

p.s. Note that full duplex transfers became a bit more
     common after f9b90e39cbc5c4d6ef60022fd1f25d541df0aad1
     merged (in the 2.6.28-rc0 merge frenzy).

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

             reply	other threads:[~2008-11-15 22:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-15 22:22 David Brownell [this message]
     [not found] ` <200811151422.32748.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-11-18  7:52   ` SPI controller bugfixes needed (full duplex + DMA, data corruption) Sascha Hauer
     [not found]     ` <20081118075215.GD9553-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-11-18  8:30       ` Andrea Paterniani
     [not found]         ` <49227D0A.40506-03BXCEkGbFHYGGNLXY5/rw@public.gmane.org>
2008-11-18 22:04           ` David Brownell

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=200811151422.32748.david-b@pacbell.net \
    --to=david-b-ybekhbn/0ldr7s880joybq@public.gmane.org \
    --cc=kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    /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.