aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/unisys
diff options
context:
space:
mode:
authorAaro Koskinen <aaro.koskinen@iki.fi>2014-03-20 00:52:08 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-03-20 01:51:12 +0000
commit120ee599b5bf4273992ef9c6ac2a316cc3630969 (patch)
treecf7dfff66201ac9deb2d7f283e6e34a1a25416c3 /drivers/staging/unisys
parent7923a6551edebefeaf4638ecfe18b958bf33c18b (diff)
staging: octeon-usb: prevent memory corruption
octeon-hcd will crash the kernel when SLOB is used. This usually happens after the 18-byte control transfer when a device descriptor is read. The DMA engine is always transfering full 32-bit words and if the transfer is shorter, some random garbage appears after the buffer. The problem is not visible with SLUB since it rounds up the allocations to word boundary, and the extra bytes will go undetected. Fix by providing quirk functions for DMA map/unmap that allocate a bigger temporary buffer when necessary. Tested by booting EdgeRouter Lite to USB stick root file system with SLAB, SLOB and SLUB kernels. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=72121 Reported-by: Sergey Popov <pinkbyte@gentoo.org> Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/unisys')
0 files changed, 0 insertions, 0 deletions