netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2/8] [I/OAT] Driver for the Intel(R) I/OAT DMA engine
@ 2006-03-11  2:29 Leech, Christopher
  2006-03-12 10:47 ` Evgeniy Polyakov
  0 siblings, 1 reply; 3+ messages in thread
From: Leech, Christopher @ 2006-03-11  2:29 UTC (permalink / raw)
  To: linux-kernel, netdev; +Cc: Leech, Christopher

[-- Attachment #1: Type: text/plain, Size: 680 bytes --]

From: Chris Leech [mailto:christopher.leech@intel.com] 
Sent: Friday, March 10, 2006 6:29 PM
To: 
Subject: [PATCH 2/8] [I/OAT] Driver for the Intel(R) I/OAT DMA engine


Adds a new ioatdma driver

Signed-off-by: Chris Leech <christopher.leech@intel.com>
---

 drivers/dma/Kconfig             |    9 
 drivers/dma/Makefile            |    1 
 drivers/dma/ioatdma.c           |  783
+++++++++++++++++++++++++++++++++++++++
 drivers/dma/ioatdma.h           |  127 ++++++
 drivers/dma/ioatdma_hw.h        |   52 +++
 drivers/dma/ioatdma_io.h        |  104 +++++
 drivers/dma/ioatdma_registers.h |  128 ++++++
 7 files changed, 1204 insertions(+), 0 deletions(-)


[-- Attachment #2: ioatdma_driver.gz --]
[-- Type: application/x-gzip, Size: 9132 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 2/8] [I/OAT] Driver for the Intel(R) I/OAT DMA engine
  2006-03-11  2:29 [PATCH 2/8] [I/OAT] Driver for the Intel(R) I/OAT DMA engine Leech, Christopher
@ 2006-03-12 10:47 ` Evgeniy Polyakov
  2006-03-12 11:04   ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Evgeniy Polyakov @ 2006-03-12 10:47 UTC (permalink / raw)
  To: Leech, Christopher; +Cc: linux-kernel, netdev

On Fri, Mar 10, 2006 at 06:29:46PM -0800, Leech, Christopher (christopher.leech@intel.com) wrote:
> From: Chris Leech [mailto:christopher.leech@intel.com] 
> Sent: Friday, March 10, 2006 6:29 PM
> To: 
> Subject: [PATCH 2/8] [I/OAT] Driver for the Intel(R) I/OAT DMA engine
> 
> 
> Adds a new ioatdma driver

enumerate_dma_channels() is still broken, if it can not fail add NOFAIL
gfp flag.
And you play tricky games with common_node/device_node of struct
dma_chan - one of that lists is never protected, while other is called 
under RCU and other locks (btw, why does insertion use RCU and deletion
in dma_async_device_unregister() does not?).
struct ioat_dma_chan - is it somewhere freed?

-- 
	Evgeniy Polyakov

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 2/8] [I/OAT] Driver for the Intel(R) I/OAT DMA engine
  2006-03-12 10:47 ` Evgeniy Polyakov
@ 2006-03-12 11:04   ` Andrew Morton
  0 siblings, 0 replies; 3+ messages in thread
From: Andrew Morton @ 2006-03-12 11:04 UTC (permalink / raw)
  To: Evgeniy Polyakov; +Cc: christopher.leech, linux-kernel, netdev

Evgeniy Polyakov <johnpol@2ka.mipt.ru> wrote:
>
>  On Fri, Mar 10, 2006 at 06:29:46PM -0800, Leech, Christopher (christopher.leech@intel.com) wrote:
>  > From: Chris Leech [mailto:christopher.leech@intel.com] 
>  > Sent: Friday, March 10, 2006 6:29 PM
>  > To: 
>  > Subject: [PATCH 2/8] [I/OAT] Driver for the Intel(R) I/OAT DMA engine
>  > 
>  > 
>  > Adds a new ioatdma driver
> 
>  enumerate_dma_channels() is still broken, if it can not fail add NOFAIL
>  gfp flag.

The __GFP_NOFAIL flag is there to mark lame-and-buggy-code which doesn't
know how to handle ENOMEM.  I went through the kernel, found all the
retry-until-it-works loops and consolidated their behaviour in the page
allocator instead.

Really we should fix them all up.  Adding new users of __GFP_NOFAIL
would not be good.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-03-12 11:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-11  2:29 [PATCH 2/8] [I/OAT] Driver for the Intel(R) I/OAT DMA engine Leech, Christopher
2006-03-12 10:47 ` Evgeniy Polyakov
2006-03-12 11:04   ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).