Jussi Kivilinna bc6b89237a rtlwifi: usb: allocate URB control message setup_packet and data buffer separately
rtlwifi allocates both setup_packet and data buffer of control message urb,
using shared kmalloc in _usbctrl_vendorreq_async_write. Structure used for
allocating is:
	struct {
		u8 data[254];
		struct usb_ctrlrequest dr;
	};

Because 'struct usb_ctrlrequest' is __packed, setup packet is unaligned and
DMA mapping of both 'data' and 'dr' confuses ARM/sunxi, leading to memory
corruptions and freezes.

Patch changes setup packet to be allocated separately.

[v2]:
 - Use WARN_ON_ONCE instead of WARN_ON

Cc: <stable@vger.kernel.org>
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2013-02-18 15:30:40 -05:00
..
2012-12-15 12:37:18 -08:00
2012-12-19 12:47:41 -08:00
2012-12-12 12:05:15 -08:00
2012-12-07 23:13:36 +01:00
2012-12-17 17:15:13 -08:00
2012-12-20 10:07:25 -08:00
2012-12-11 14:08:47 -08:00
2012-12-18 15:19:06 +10:30
2012-12-20 07:21:54 -08:00
2012-12-12 11:45:16 -08:00
2012-12-17 17:15:14 -08:00
2012-12-11 13:13:55 -08:00
2012-12-19 08:14:08 -08:00
2012-12-19 08:19:07 -08:00
2012-12-11 13:13:55 -08:00
2012-12-12 12:05:15 -08:00
2012-12-16 17:39:14 -08:00