Commit 26370228 authored by Christian Gromm's avatar Christian Gromm Committed by Greg Kroah-Hartman
Browse files

staging: most: prevent DMA on stack



This patch is needed to avoid having DMA on the stack.

Signed-off-by: default avatarAndrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: default avatarChristian Gromm <christian.gromm@microchip.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent cc8d9935
Loading
Loading
Loading
Loading
+16 −10
Original line number Diff line number Diff line
@@ -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,
	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,
			       buf,
			       2,
			       5 * HZ);
				 reg, dma_buf, sizeof(u16), 5 * HZ);
	*buf = *dma_buf;
	kfree(dma_buf);

	return retval;
}

/**