mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 01:10:04 +00:00
staging: most: prevent DMA on stack
This patch is needed to avoid having DMA on the stack. Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de> Signed-off-by: Christian Gromm <christian.gromm@microchip.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
cc8d993513
commit
2637022887
1 changed files with 16 additions and 10 deletions
|
@ -146,17 +146,23 @@ static void wq_netinfo(struct work_struct *wq_obj);
|
|||
*
|
||||
* This is reads data from INIC's direct register communication interface
|
||||
*/
|
||||
static inline int drci_rd_reg(struct usb_device *dev, u16 reg, void *buf)
|
||||
static inline int drci_rd_reg(struct usb_device *dev, u16 reg, u16 *buf)
|
||||
{
|
||||
return usb_control_msg(dev,
|
||||
usb_rcvctrlpipe(dev, 0),
|
||||
DRCI_READ_REQ,
|
||||
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
|
||||
0x0000,
|
||||
reg,
|
||||
buf,
|
||||
2,
|
||||
5 * HZ);
|
||||
int retval;
|
||||
u16 *dma_buf = kzalloc(sizeof(u16), GFP_KERNEL);
|
||||
u8 req_type = USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE;
|
||||
|
||||
if (!dma_buf)
|
||||
return -ENOMEM;
|
||||
|
||||
retval = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0),
|
||||
DRCI_READ_REQ, req_type,
|
||||
0x0000,
|
||||
reg, dma_buf, sizeof(u16), 5 * HZ);
|
||||
*buf = *dma_buf;
|
||||
kfree(dma_buf);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue