]> git.baikalelectronics.ru Git - kernel.git/commit
USB: Check results of dma_map_single
authorLarry Finger <Larry.Finger@lwfinger.net>
Thu, 5 Nov 2009 16:37:03 +0000 (10:37 -0600)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 11 Dec 2009 19:55:20 +0000 (11:55 -0800)
commit5873ca2f167fb19789e1a07cf5b69d12606e4401
tree6128ed2bcfd50c1dedcf3cb61e752266708fdef5
parent23defce498723695b91b9470bf7f4706d1e0bfdb
USB: Check results of dma_map_single

In map_urb_for_dma(), the DMA address returned by dma_map_single()
is not checked to determine if it is legal. This lack of checking
contributed to a problem with the libertas wireless driver
(http://marc.info/?l=linux-wireless&m=125695331205062&w=2). The
difficulty was not detected until the buffer was unmapped. By this time
memory corruption had occurred.

The situation is fixed by testing the returned DMA address, and
returning -EAGAIN if the address is invalid.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/hcd.c